页面结构如下:
index.js
- start.js (input form customization)
- start.ejs (input form)
- page.js
- page.ejs
我有简单的表单和router.post我渲染它的内容在渲染的page.ejs上对用户可见。
start.js内容:
router.post('/page', function(req,res))
{
var somedata = req.body.inputForm;
res.render('page', {somedata : somedata});
}
我想在page.js中访问这些数据,以便我可以处理它。怎么做?
答案 0 :(得分:1)
mkdir SO-40876646
npm install -g express-generator
express --view=ejs .
npm install
npm start
http://localhost:3000
并验证网站加载(标准快递网站有一个非常简单的标题说快递)Express中的所有中间件都是通过单个函数调用构建的,其中包含三个参数 - request , response , next 。
出于我们的目的,我们将展示路由器和我们的中间件的服务器端配置以演示其用途。
在我们的routes/index.js
文件中,我们创建了一个 pageProcessor 函数;这被挂在我们的页面路由器中,如下所示:
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
router.get('/page', function(req, res) {
res.render("page", { title: 'Express', information: "undefined"})
});
router.post('/page', pageProcessor, function(req, res) {
res.render("page", {title: 'Express', information: req.params.information})
})
function pageProcessor(req, res, next) {
req.params.information = req.body.information.toUpperCase();
next();
}
module.exports = router;
我们的处理函数有机会在渲染回调之前运行,处理我们的参数并将它们放在我们期望的格式中。在我们的示例中,我们将信息字段转换为大写并返回,但您可以利用此机会log a user in,validating JSON或update a database。关键点是参数来自req.body和should not be assumed to be valid。
这个例子很简单,只能用作踩踏点。您应该查看着名的middleware的实施情况,例如Compression和Cookie-Session,以获得有关此方面的进一步指导。
如果您愿意,我可以使用此代码并将其粘贴到回购中,供您自行拉动和玩耍。
您可以阅读有关authoring middleware on the expressjs website的更多信息。
答案 1 :(得分:0)
在你的
里面page.ejs
文件您可以使用 include 标记执行以下操作:
<script>
var data= <%= somedata %> ;
<% include page.js %>
</script>
然后你可以在page.js中定义'data'变量。