body-parser读取本地json

今天发现一个问题:当vue安装的是webpack-simple的时候,直接去读本地文件是可以的,但是如果安装的是webpack的时候,就无法用一样的形式来读取本地文件,amazing

cnpm i body-parser -S

dev-server.js

// 25行
var app = express()

var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())
var apiRouter = express.Router()
var fs = require('fs')
apiRouter.route('/:apiName')
.all(function (req, res) {
  fs.readFile('./db.json', 'utf8', function (err, data) {
    if (err) throw err
    var data = JSON.parse(data)
    if (data[req.params.apiName]) {
      res.json(data[req.params.apiName])
    }
    else {
      res.send('no such api name')
    }

  })
})

app.use('/api', apiRouter);
app.listen(port + 1, function (err) {
  if (err) {
    console.log(err)
    return
  }
  console.log('Listening at http://localhost:' + (port + 1) + '\n')
})

这是一种我能接受的方式,在var app = express()后面加上这样的代码就可以实现了

另外一种方式

app.use(staticPath, express.static('./static'))

var apiServer = express()
var bodyParser = require('body-parser')
apiServer.use(bodyParser.urlencoded({ extended: true }))
apiServer.use(bodyParser.json())
var apiRouter = express.Router()
var fs = require('fs')
apiRouter.route('/:apiName')
.all(function (req, res) {
  fs.readFile('./db.json', 'utf8', function (err, data) {
    if (err) throw err
    var data = JSON.parse(data)
    if (data[req.params.apiName]) {
      res.json(data[req.params.apiName])
    }
    else {
      res.send('no such api name')
    }

  })
})

apiServer.use('/api', apiRouter);
apiServer.listen(port + 1, function (err) {
  if (err) {
    console.log(err)
    return
  }
  console.log('Listening at http://localhost:' + (port + 1) + '\n')
})

现在是在app.use(staticPath, express.static('./static'))后面添加这段代码,但是还是要有修改的,不能再使用var app = express(),而是换成了var apiServer = express()

Question:现在是读取一个文件里面的json数据,如果是多个json文件呢?是不是很难呢?

config/index.js

    proxyTable: {
      '/api/':'http://localhost:8081'
    },

需要添加一个代理的配置,但是测试发现,不加上也是对的


这是做了一个小小的规范,没什么意义

      res.json({
        status:200,
        data:data[req.params.apiName]
      })

今天在自己做的时候突然发现,不知道咋做的了,看来还是需要多练习啊

db.json

{
  "home": [{
      "name": "张三",
      "age": "13",
      "sex": "男"
    },
    {
      "name": "李四",
      "age": "14",
      "sex": "女"
    },
    {
      "name": "王五",
      "age": "15",
      "sex": "人妖"
    }
  ]
}

注意json的文件书写格式,而且必须是带双引号的

Hello.vue


注意文件的引入路径

你可能感兴趣的:(body-parser读取本地json)