Javascript 如何使用NodeJS为多个html文件提供服务
我用nodeJS创建了一个mongoDB表单,我可以为注册页面提供服务,但是当我点击任何其他链接转到其他页面时,它会抛出“Cannot GET/index.html”这样的例子。我不确定如何使用nodejs服务多个文件Javascript 如何使用NodeJS为多个html文件提供服务,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我用nodeJS创建了一个mongoDB表单,我可以为注册页面提供服务,但是当我点击任何其他链接转到其他页面时,它会抛出“Cannot GET/index.html”这样的例子。我不确定如何使用nodejs服务多个文件 var express = require("express"); var app = express(); var port = 3000; var bodyParser = require('body-parser'); app.use(bodyParser.json());
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/ClubArchive_Users");
var nameSchema = new mongoose.Schema({
fname: String,
lname: String,
email: String,
uname: String,
pwd :String
});
var User = mongoose.model("User", nameSchema);
app.get("/", (req, res) => {
res.sendFile(__dirname + "/SignUp.html");
});
app.post("/addname", (req, res) => {
var myData = new User(req.body);
myData.save()
.then(item => {
res.sendFile(__dirname + "/index.html");
})
.catch(err => {
res.status(400).send("Unable to save to database");
});
});
app.listen(port, () => {
console.log("Server listening on port " + port);
});
node.js本身根本不提供任何内容。因此,您希望服务器响应的任何URL在Express中都必须有相应的路由。您可以使用
app.get(someURLPath, someHandler);
或者,您可以使用express.static()
中间件为位于目录层次结构中的一组静态页面提供服务
为了更具体地帮助您,我们需要:
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/ClubArchive_Users");
var nameSchema = new mongoose.Schema({
fname: String,
lname: String,
email: String,
uname: String,
pwd :String
});
var User = mongoose.model("User", nameSchema);
app.get("/", (req, res) => {
res.sendFile(__dirname + "/SignUp.html");
});
app.post("/addname", (req, res) => {
var myData = new User(req.body);
myData.save()
.then(item => {
res.sendFile(__dirname + "/index.html");
})
.catch(err => {
res.status(400).send("Unable to save to database");
});
});
app.listen(port, () => {
console.log("Server listening on port " + port);
});
您需要教会node.js服务器如何响应这些其他链接。为每个页面创建一个自定义路由,或者,对于静态页面,使用
express.static()
,这样它就可以使用一行中间件为一组静态页面提供服务。将返回其他链接的html文件的代码在哪里?好的,假设我有一个动态网页,我还有大约6个其他html文件,我可以把它们单独发送吗?这样做的代码是什么?@ArvindVenkatesan-将它们单独发送就像您当前的“/”路由服务“/SignUp.html”。好的!非常感谢@ArvindVenkatesan-因为看起来你可能是新来的,如果这回答了你的问题,你可以通过点击答案左边的复选标记向社区表明这一点。这也将为您在stackoverflow上按照正确的程序赢得一些声誉积分。