node.js中的基本函数调用

时间:2019-06-01 19:09:05

标签: node.js express

如果我编写以下代码,则会显示“ Hello World”,但不会显示“ Hey from function”。我究竟做错了什么?如果尝试从调用的函数写入控制台,则相同。似乎没有被调用。

这是对node.js的非常基本的测试

const http = require('http');
const express = require('express');

const app = express();

const port = 3000;

function writetest(req, res) {
    res.send("Hey from function");
}


app.get('/nodejs/', function(req, res) { 
    res.send('Hello World!');
    writetest(req,res);
});

app.listen(port, () => console.log(`Example app listening on port ${port}!`));

没有错误消息,似乎不调用函数。

4 个答案:

答案 0 :(得分:3)

使用res.write(),您必须在最后致电res.end()

由于res.send()内部调用res.end(),因此您无法再写入res

答案 1 :(得分:2)

res.send只能被调用一次,一旦发送了数据,用户浏览器就不再等待任何其他响应。您可以尝试使用res.writeres.end(详细介绍here)来实现。 here显示了如何使用它的示例。

答案 2 :(得分:0)

由于HTTP限制,您的用例是不可能的,您不能发送两个响应。因此,您不能两次拨打res.send

答案 3 :(得分:0)

您无法在一个api调用中执行两次res.send。您可以使用if else循环执行此操作,但同时无法执行两个res.send