NodeJS无法向客户端发送消息

时间:2018-05-23 15:49:34

标签: node.js

我正在尝试学习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;

我似乎没有在任何地方关闭连接,为什么我只能向客户端写一条消息?

1 个答案:

答案 0 :(得分:1)

res.send()是你的函数应该做的最后一件事。可以把它想象成功能的回报,你不能多次返回。