我正在关注一个博客,用Express框架构建我的第一个节点API。但是POST请求没有返回响应。
const app = express();
require('./app/routes')(app, {});
app.listen(port, () => {
console.log('We are live on ' + port);
});
module.exports = function(app, db) {
console.log('reached2');
app.post('/notes', (req, res) => {
// You'll create your note here.
console.log('reached3');
res.send('Hello');
//res.end();;
});
};
以下是我的控制台日志
reached1
reached2
We are live on 8000
以下是我的依赖项
"dependencies": {
"body-parser": "^1.17.2",
"express": "^4.15.3",
"mongodb": "^2.2.28"
},
"devDependencies": {
"nodemon": "^1.11.0"
}
我正在使用postman客户端进行POST。
我尝试用匿名函数替换胖箭头操作符,但仍无效。
请在此代码中指出问题。
答案 0 :(得分:0)
如果你想把你的路线保存在一个单独的文件中(这是相当标准的做法),那么你需要返回路由器并告诉快递应用程序使用它。
<强> app.js 强>
const express = require('express');
const routes = require('./routes')({});
const app = express();
app.use('/', routes);
app.listen(8080, () => {
console.log('Listening on 8080');
})
<强> routes.js 强>
const express = require('express');
module.exports = (db) => {
const router = express.Router();
router.post('/notes', (req, res) => {
res.send('Hello!');
})
// all your other routes here!
return router;
}
或者,如果您想在不使用express.Router()
的情况下执行此操作,则可以传递app
。
<强> app.js 强>
const express = require('express');
const app = express();
require('./routes')(app, {});
app.listen(8080, () => {
console.log('Listening on 8080');
})
<强> routes.js 强>
module.exports = (app, db) => {
app.post('/notes', (req, res) => {
res.send('Hello!');
})
}
答案 1 :(得分:-1)
您可以直接使用它,而不是在函数中编写路径。以下是相同的代码段:
const app = express();
app.listen(port, () => {
console.log('We are live on ' + port);
});
app.post('/notes', (req, res) => {
// You'll create your note here.
res.send('Hello');
});