我尝试使用以下代码,但是它给了我一个错误," res.send不是一个函数"。请帮我。
以下是代码:
var http = require('http');
var fs = require('fs');
var connect = require('connect');
var express = require('express');
var app = express();
app.get('/', function(res, req ) {
res.send('Hello World');
});
var server = app.listen(8888, function(){
var host = server.address().address;
var port = server.address().port;
console.log("Example app listening at http://%s:%s", host, port);
});
服务器正常运行并正在连接。显示的完整错误是这样的:
TypeError:res.send不是函数 在c:\ wamp \ www \ node \ server.js:8:13 在Layer.handle [as handle_request](c:\ wamp \ www \ node \ node_modules \ express \ lib \ router \ layer.js:95:5) 在下一个(c:\ wamp \ www \ node \ node_modules \ express \ lib \ router \ route.js:137:13) 在Route.dispatch(c:\ wamp \ www \ node \ node_modules \ express \ lib \ router \ route.js:112:3) 在Layer.handle [as handle_request](c:\ wamp \ www \ node \ node_modules \ express \ lib \ router \ layer.js:95:5) 在c:\ wamp \ www \ node \ node_modules \ express \ lib \ router \ index.js:281:22 在Function.process_params(c:\ wamp \ www \ node \ node_modules \ express \ lib \ router \ index.js:335:12) 在下一个(c:\ wamp \ www \ node \ node_modules \ express \ lib \ router \ index.js:275:10) at expressInit(c:\ wamp \ www \ node \ node_modules \ express \ lib \ middleware \ init.js:40:5) 在Layer.handle [as handle_request](c:\ wamp \ www \ node \ node_modules \ express \ lib \ router \ layer.js:95:5)
答案 0 :(得分:19)
根据API reference,第一个参数是请求,然后是响应
所以
app.get('/', function(req, res) {
res.send("Rendering file")
}
应该修复它。
答案 1 :(得分:15)
答案 2 :(得分:3)
交换请求& res:function(req, res)
答案 3 :(得分:0)
您应该首先使用req参数,然后使用res作为第二个参数,这将毫无问题地起作用
app.get('/', function(req, res) {
res.send("Rendering file")
}
答案 4 :(得分:0)
在某些情况下,您可以改变主意,可以这样写。 注意:默认情况下,在本地计算机上运行节点服务器时。您的主机将始终为本地主机:“您的愿望端口” 谢谢!
const express = require("express")
const app = express();
const port = 8888;
// for redering hello you don't need to require fs
const fs = require("fs")
app.get ('/', (req, res) => {
res.send("hello world")
})
app.listen(port, () => console.log(`Listening on ${port}`))
答案 5 :(得分:0)
您正在编写的中间件函数是一个回调函数,应该遵循声明参数 function(req, res, next)
req
用于请求 res
用于响应和 next
用于进一步操作的顺序。您可以参考API reference。
所以正确的代码是:
var express = require('express');
var http = require('http');
var fs = require('fs');
var connect = require('connect');
var app = express();
app.get('/', function(req, res) {
res.send('Hello World');
});
var server = app.listen(8888, function(){
var host = server.address().address;
var port = server.address().port;
console.log("Example app listening at http://%s:%s", host, port);
});