簡體   English   中英

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 ,然后為動態頁面添加get路由,如下所示

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 */
});

您應該將其存儲在數據庫中以防止頁面不存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM