如何解决Express-POST无法传递数据
我希望用户从下拉列表中选择数据,然后将数据发送到另一个视图。 形式如下:
<div class="container">
<!-- If data exists,handle them -->
<ul>
<% if (locals.data) { %>
<script language="javascript">
var x = document.getElementById("Error");
x.classList.add('invisible');
</script>
<form action="/renderer" method="POST" id="sc-form">
<label for="model">Choose a model:</label>
<select name="model" id="model">
<% data.forEach(function(dat) { %>
<option value="<%= dat %>"> <%= dat %> </option>
<% }); %>
</select>
<input type="submit" value="Render the model!" />
</form>
<% } %>
</ul>
</div>
这是route.js的处理程序:
app.post('/renderer',function(req,res) {
res.render('renderer.ejs',{model: req.body.model} );
});
最后,当我尝试使用以下命令访问renderer.ejs上的POST数据时:
var modelName = req.query.model;
,在<script>
标记内,出现此错误:
Uncaught ReferenceError: req is not defined
at renderer?model=myModel.stl:44
我完全遵循所有教程,这是我的server.js
:
// server.js
const express = require('express');
const app = express();
const upload = require('express-fileupload');
const bodyParser = require('body-parser');
const session = require('express-session');
const flash = require('connect-flash');
const cookieParser = require('cookie-parser');
const port = process.env.PORT || 8080;
// get information from html forms
app.use(bodyParser.urlencoded({ extended: true })); // to support URL-encoded bodies
app.use(bodyParser.json()); // to support JSON-encoded bodies
//for uploading files
app.use(upload());
//in order to use flash messages
app.use(cookieParser());
app.use(session({
secret: 'justarandomsecret',saveUninitialized: true,//this prevents the browser from using empty sessions
resave: true
}));
app.use(flash());
//app.use(favicon(__dirname + './public/images/favicon.ico')); //This line is erroneous
app.use('/public/images/',express.static('./public/images')); //Use this to allow views to have access to images
app.use(express.static('public')); //This made Bootstrap work
app.set('view engine','ejs'); // set up ejs for templating
// routes ======================================================================
require('./app/routes.js')(app); // load our routes and pass in our app
// launch ======================================================================
app.listen(port,(err) => {
if (err) console.log(err);
console.log('Server is up on port ' + port);
});
我还必须说我尝试了req.body.model
和req.query.model
,但没有任何效果!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。