Node.JS: 使用 Express 创建新页面
Node.JS: Create new pages with Express
我正在尝试找到一种在用户提交表单时使用 Express 在 Node.JS 上动态创建新页面的方法。这是我的想法,但行不通:
var app = require('express')();
var server= require('http').createServer(app);
var bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false });
function Page(name){ //Create a page prototype
//Some variables and methods specific to the page
app.get('/'+name, function (req, res) {
res.render('index.ejs', {someVars: someVars});
});
}
//When a user submits a form, create a new page
app.post('/submit', urlencodedParser, function(req, res){
var nom = req.body.nom;
var newPage = new Page(nom);
res.redirect('http://myDomain/' + nom);
});
最好的方法是什么?
您需要将 ejs
添加为视图引擎并确保您已创建 index.ejs
然后为动态页面添加一个获取路由
var app = require('express')();
var server= require('http').createServer(app);
var bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false });
// set the view engine to ejs
app.set('view engine', 'ejs');
app.get("/:pageName", function (req, res) {
var pageName = req.params.pageName;
res.render('index.ejs', {someVars: someVars});
});
//When a user submits a form, create a new page
app.post('/submit', urlencodedParser, function(req, res){
var nom = req.body.nom;
res.redirect('http://myDomain/' + nom);
});
希望对您有所帮助
您可以将创建的页面名称保存在数据库中,并在 express 中设置可选参数:
//When a user submits a form, create a new page
app.post('/submit', urlencodedParser, function(req, res){
var nom = req.body.nom;
/* save nom to database */
res.redirect('http://myDomain/' + nom);
});
app.get('/:nom', function(req, res){
/* if nom exists in database -> return ejs template with vars */
/* else return 404 */
});
您应该将其存储在数据库中,以防止出现不存在的页面。
我正在尝试找到一种在用户提交表单时使用 Express 在 Node.JS 上动态创建新页面的方法。这是我的想法,但行不通:
var app = require('express')();
var server= require('http').createServer(app);
var bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false });
function Page(name){ //Create a page prototype
//Some variables and methods specific to the page
app.get('/'+name, function (req, res) {
res.render('index.ejs', {someVars: someVars});
});
}
//When a user submits a form, create a new page
app.post('/submit', urlencodedParser, function(req, res){
var nom = req.body.nom;
var newPage = new Page(nom);
res.redirect('http://myDomain/' + nom);
});
最好的方法是什么?
您需要将 ejs
添加为视图引擎并确保您已创建 index.ejs
然后为动态页面添加一个获取路由
var app = require('express')();
var server= require('http').createServer(app);
var bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false });
// set the view engine to ejs
app.set('view engine', 'ejs');
app.get("/:pageName", function (req, res) {
var pageName = req.params.pageName;
res.render('index.ejs', {someVars: someVars});
});
//When a user submits a form, create a new page
app.post('/submit', urlencodedParser, function(req, res){
var nom = req.body.nom;
res.redirect('http://myDomain/' + nom);
});
希望对您有所帮助
您可以将创建的页面名称保存在数据库中,并在 express 中设置可选参数:
//When a user submits a form, create a new page
app.post('/submit', urlencodedParser, function(req, res){
var nom = req.body.nom;
/* save nom to database */
res.redirect('http://myDomain/' + nom);
});
app.get('/:nom', function(req, res){
/* if nom exists in database -> return ejs template with vars */
/* else return 404 */
});
您应该将其存储在数据库中,以防止出现不存在的页面。