在nodejs中的另一页上发布数据

时间:2017-04-26 10:25:03

标签: javascript node.js post ejs

我是nodejs的新手。我试图使用ejs引擎创建登录表单。我想要的只是使用发布请求在欢迎屏幕上打印用户名和密码。问题是,如果我使用POST操作,它将打印我的数据但不显示欢迎屏幕布局,如果我使用GET操作,那么它将显示屏幕布局但没有数据。我已经在app.js文件中编写了代码。这是对的吗??我在下面提到了我的app.js代码以供参考。提前谢谢。

代码: -

app.post('/welcome', function(req, res) {
     res.send('Username is '+req.body.unm+'<br>Password is '+req.body.pwd);
});

4 个答案:

答案 0 :(得分:0)

你面临什么问题?返回字符串是否显示值? 使用模板引擎时,您应该使用render代替res.send来发送视图。

检查ejs主页中给出的样本。

答案 1 :(得分:0)

在ejs npm页面上有一些非常有用的信息:https://www.npmjs.com/package/ejs

我建议您查看express包,它允许您提供页面,因此您可以从这样的内容开始:

app.get('/', function(req, res){
  return res.sendFile(__dirname + '/index.html');
});

这是一个有用的答案,可以帮助你:how to implement login auth in node.js

答案 2 :(得分:0)

如果您使用Express与ejs,您需要定义包含您的视图的文件夹(.ejs文件),如下所示:

var express = require('express')
app.use(express.static(__dirname + '/views')); // set the static files location for the static html

而不是res.send,请回答:

app.post('/welcome', function(req, res) {
        res.render('welcome', {username: req.body.unm, password: req.body.pwd});
});

在welcome.ejs中构建您的html并为<%= username %><%= password %>

添加占位符

项目库中views目录中的示例welcome.ejs文件:

<div class="container">
    <p>Welcome<b><%= username %></b></p>
    <p>Your password is <%= password %> </p>
</div>

答案 3 :(得分:0)

试试这个..

这是您的index.html文件,您可以在其中填写用户名和密码。我正在调用显示帖子操作以在提交时显示您的用户名和密码。

<强> home.html的

<form action="/display" method="POST">
    <input type="text" placeholder="name" name="name">
    <input type="text" placeholder="password" name="pwd">
    <button type="submit">Submit</button>
</form>

这是您的nodejs代码,它使用post请求显示用户名和密码。快递将通过获取请求为您的html页面提供服务,并且在提交数据时将触发发布请求。

const express = require('express')
const bodyParser = require('body-parser')
const app = express()
app.use(bodyParser.urlencoded({
  extended: true
}))

app.get('/', (req, res) => {
  res.sendFile(__dirname + '/home.html')
});
app.post('/display', (req, res) => {
  res.send('Username is ' + req.body.name + '<br>Password is ' + req.body.pwd);
  console.log(req.body)
});

app.listen(3000, () => {
  console.log('listening on 3000')
})