我正在通过两个元素创建一个网页编辑器:ejs格式的前端和nodejs中的后端。在前端,我有一个带有按钮的文本框,用于从用户那里获取一些输入。当按下按钮时,前端执行对服务器的GET请求(使用服务器节点到外部URL),我的目的是使用从GET请求中检索的数据创建表。实际上,我的代码执行到服务器的GET请求,但我无法将我的ejs页面重定向到新页面(由表格组成) 这是我的代码: index.ejs
<html lang="en">
<%- include header %>
<!-- Main component for a primary marketing message or call to action -->
<div class="jumbotron">
<h1>Welcome</h1>
<p>Hello Dashboard</p>
</div>
</html>
<div class="row">
<form class="col s12" id="plate">
<div class="row">
<div class="input-field col s12">
<label for="plate">Insert plate</label>
<input type="text" id="myText" >
<button class="btn waves-effect waves-light" type="submit" onclick="search()">Submit
<i class="material-icons right">send</i>
</button>
</div>
</div>
</form>
</div>
<script>
function search() {
var x = document.getElementById("myText").value;
var url="http://localhost:1500/block?plate="+x;
$.get(url, function(data, status){
window.location.replace(url);
});
}
</script>
这是我的服务器(节点):
var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');
var bodyParser=require("body-parser");
var expressapp = express();
var EventEmitter = require("events").EventEmitter;
var body = new EventEmitter()
var rp = require('request-promise');
// all environments
expressapp.set('port', process.env.PORT || 8080);
expressapp.set('views', __dirname + '/views');
expressapp.set('view engine', 'ejs');
expressapp.use(bodyParser.urlencoded({ extended: false }));
expressapp.use(bodyParser.json());
expressapp.use(express.static(path.join(__dirname, 'public')));
expressapp.get ('/', function(req, res, next){
res.render('index.ejs');
});
expressapp.get('/block', user.block);
//Middleware
expressapp.listen(1500, function () {
console.log('Server listening on port 1500!');
});
这是我的/routes/index.js:
exports.block = function(req, res, next){
const request = require('request');
plate= req.query.plate;
url="http://150.145.11.134:3000/api/queries/GetSostaByPlate?
request_platenumber="+plate;
request(url, function (err, response, body) {
if (err || response.statusCode !== 200) {
return res.sendStatus(500);
}
console.log(JSON.parse(body));
res.render('plate.ejs', { results : JSON.parse(body) });
});
};
我的目标是将页面(在按下按钮之后)重定向到http://localhost:1500/block?plate=<text insert into the form>
感谢您的帮助!
答案 0 :(得分:0)
expressapp.get('/block', function(req, res) {
res.render('plate.ejs', { results : JSON.parse(body) });
});
expressapp.get('/', function(req, res) {
if (user.block) {
res.redirect('/block');
} else {
res.render('index')
}
});
基本上,您定义了/block
应该呈现的方式,然后将目标网页重定向到/block
,并且应该正确呈现。