我正在尝试学习Node.JS,但是使用本教程制作REST API: https://medium.freecodecamp.org/building-a-simple-node-js-api-in-under-30-minutes-a07ea9e390d2
我有一个非常愚蠢的小问题,我似乎无法修复。在我的user_routes.js文件中,我正在尝试向express()应用程序写几条消息,但是在第一次res.send()调用之后它永远不会工作。为什么是这样?我无法在我的代码中找到任何关闭连接的地方或其他什么,为什么我不能多次写入请求?
我的user_routes.js
module.exports = function(app, db) {
app.post('/user', function (req,res) {
res.send("User Request Recieved via POST");
// Add the user to the database, if they don't already exist
const firstName = req.body.firstName;
const lastName = req.body.lastName;
const email = req.body.email;
const password = req.body.password;
const user = {
firstName: firstName,
lastName : lastName,
email : email,
password : password
};
if (db.collection('users').find({'email':email}).count() == 0) {
res.send('Unique Email');
db.collection('users').insert(user, (err, result) => {
if (err) {
console.log("error");
} else {
console.log(result.ops[0])
}
});
} else {
res.send("Email already in use")
}
})
};
任何我的server.js:
const express = require('express');
const MongoClient = require('mongodb').MongoClient;
const bodyParser = require('body-parser');
const app = express();
const port = 6969;
const db = require('./config/db')
// We need to decode data from the url using the body-parser lib
app.use(bodyParser.urlencoded({ extended: true }));
MongoClient.connect(db.url).then( function(db) {
require('./app/routes')(app, db);
app.listen(port, () => {
console.log('We are live on ' + port);
});
}).catch (function (err) {
console.log(err);
});
module.exports = app;
我似乎没有在任何地方关闭连接,为什么我只能向客户端写一条消息?
答案 0 :(得分:1)
res.send()是你的函数应该做的最后一件事。可以把它想象成功能的回报,你不能多次返回。