[
var express = require("express");
var app = express();
var port = 3000;
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
var mongoose = require("mongoose");
mongoose.Promise = global.Promise;
mongoose.connect("mongodb://localhost:27017/node-demo");
var nameSchema = new mongoose.Schema({
firstName: String,
lastName: String
});
var User = mongoose.model("User", nameSchema);
app.get("/", (req, res) => {
res.sendFile(__dirname + "/index.html");
});
app.post("/addname", (req, res) => {
var myData = new User(req.body);
myData.save()
.then(item => {
res.send("Name saved to database");
})
.catch(err => {
res.status(400).send("Unable to save to database");
});
});
app.listen(port, () => {
console.log("Server listening on port " + port);
});
<!DOCTYPE html>
<html>
<head>
<title>Intro to Node and MongoDB</title>
</head>
<body>
<h1>Into to Node and MongoDB</h1>
<form method="post" action="/addname">
<label>Enter Your Name</label><br>
<input type="text" name="firstName" placeholder="Enter first name..." required>
<input type="text" name="lastName" placeholder="Enter last name..." required>
<input type="submit" value="Add Name">
</form>
</body>
</html>
]
by running the code on localhost:3000 我在我的保龄球上得到了这个结果
TypeError:res.sendFile在回调时不是app.get(C:\ Users \ DeLL pc \ Documents \ node \ app.js:18:9)中的函数(C:\ Users \ DeLL pc \ Documents \ node \ node_modules) \ express \ lib \ router \ index.js:164:37)at param(C:\ Users \ DeLL pc \ Documents \ node \ node_modules \ express \ lib \ router \ index.js:138:11)at pass(C :\ Users \ DeLL pc \ Documents \ node \ node_modules \ express \ lib \ router \ index.js:145:5)在Router._dispatch(C:\ Users \ DeLL pc \ Documents \ node \ node_modules \ express \ lib \) router \ index.js:173:5)在Object.router [作为句柄](C:\ Users \ DeLL pc \ Documents \ node \ node_modules \ express \ lib \ router \ index.js:33:10)下一步(在Object.urlencodedParser [作为句柄]的C:\ Users \ DeLL pc \ Documents \ node \ node_modules \ connect \ lib \ proto.js:174:15)(C:\ Users \ DeLL pc \ Documents \ node \ node_modules \ body -parser \ lib \ types \ urlencoded.js:91:7)在Object.jsonParser的下一个(C:\ Users \ DeLL pc \ Documents \ node \ node_modules \ connect \ lib \ proto.js:174:15)[as在nex处理(C:\ Users \ DeLL pc \ Documents \ node \ node_modules \ body-parser \ lib \ types \ json.js:110:7)在Object.expressInit [作为句柄]的t(C:\ Users \ DeLL pc \ Documents \ node \ node_modules \ connect \ lib \ proto.js:174:15)(C:\ Users \ DeLL pc \ Documents \ node \ node_modules \ express \ lib \ middleware.js:30:5)at Object.query下的(C:\ Users \ DeLL pc \ Documents \ node \ node_modules \ connect \ lib \ proto.js:174:15)[作为句柄] (C:\ Users \ DeLL pc \ Documents \ node \ node_modules \ connect \ lib \ middleware \ query.js:43:5)at next(C:\ Users \ DeLL pc \ Documents \ node \ node_modules \ connect \ lib \ proto.js:174:15)在Function.app.handle(C:\ Users \ DeLL pc \ Documents \ node \ node_modules \ connect \ lib \ proto.js:182:3)
1 回答
我知道
res
存在的唯一原因,但res.sendFile()
不是函数,如果你在将sendFile
方法添加到Express之前运行旧版本的Express .来自the doc:
您还可以添加一些日志记录以获取更多信息:
在您的控制台中,您可以使用此命令行查看已安装的Express版本: