我尝试用express js post请求构建一个api。我将body-parser用于req.body。但是在发送发布请求后,我仍然无法加载任何消息,然后显示超时。我的问题在哪里,请看一下我的代码。 我正在从邮递员测试它,并在标头内容类型application / json上使用。
const express = require('express');
const bodyParser = require('body-parser');
const config = require('./config/config.js').get(process.env.NODE_ENV);
const mongoose = require('mongoose');
const app = express();
mongoose.connect(config.DATABASE)
const {Book} = require('./models/book')
app.use(bodyParser.json())
// Post Book
app.post('api/book', (req,res)=>{
let book = new Book(req.body)
book.save((err, doc)=>{
if(err) return res.status(400).send(err);
res.status(200).json({
post:true,
bookId: doc._id
})
})
})
现在显示错误-无法发布/ api / book 但是当我尝试使用以下代码时
const book = new Book({ name: 'Zildjian' });
book.save().then(() => console.log('data save'));
答案 0 :(得分:2)
将路线从api/book
更改为/api/book
-添加前导/
。
此外,由于它无法通过您的 cookie-parser 中间件,因此似乎正在超时。
您已传递函数:
app.use(cookieParser)
...但是您需要调用它:
app.use(cookieParser())
您还需要导入它:
const cookieParser = require('cookie-parser')
...或者在不需要时将其完全删除。
我希望这会有所帮助。