我正在使用JADE,node.js,并表示要创建一个表以选择一些数据。 一切都在本地主机上运行。 当我尝试路由/ climateParamSelect时,它将起作用并显示我希望看到的内容,包括URL编码的元素。
此代码段位于app.js中,但我确认使用/ climateParamSelect?test = test可以正常工作。路线位于climateParamSelect.js
router.get('/', async function(req, res, next) {
console.log('GET');
console.log(req.query);
});
router.post('/', async function(req, res, next) {
console.log('POST');
console.log(req.params);
});
module.exports = router;
app.js中的代码毕竟可能很重要,因此以下是摘录:
const express = require('express');
var tableSelectRouter = require('./routes/tableSelect');
var cpSelectRouter = require('./routes/climateParamSelect');
var app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/climateParamSelect', cpSelectRouter);
app.use('/tableSel', tableSelectRouter);
当我使用下一页的“提交”按钮时,将调用它,但由于某种原因,从未采用以上路线。而是显示:等待本地主机。
html
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
link(rel='stylesheet', href='https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css')
script(src='https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.1/jquery.min.js')
script(src='https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js')
script.
$(document).ready(function() {
$('#selTable').DataTable();
});
body
form(name='productionSelect', method='post', action='/climateParamSelect')
div#wrapper
h1 Select production data for feature generation
br
table#selTable.display
thead
tr
th headers
//...
tbody
tr
td
input(type='checkbox',id='#{r}',name='#{r}')
td
//...
br
input(type='submit',value='Select Production',name='prodSubmit',data-transition='fade', data-theme='c')
我在这里想念什么?
谢谢
答案 0 :(得分:0)
浏览器将坐在那里旋转,直到收到响应,并且您的路线中没有发送响应。我确定您要渲染一个视图,但是要快速测试它,只需使用res.send
和一个字符串。
第二个问题是如何读取客户端发送的数据。 req.params
用于对路由中的变量进行动态URL解析。要处理表单数据(您要在此处发送的数据),可以使用req.body
。
更改路线可解决您的问题:
router.post('/climateParamSelect', async function(req, res, next) {
console.log('POST');
console.log(req.body);
res.send("hello");
});