我有一个登录应用程序,但我无法将表单(email
和password
)的凭据传达到我现有的.js
文件,它在其中执行一些逻辑并检索一些信息。
在我的login
页面上,我有一个带有POST
方法的form
。然后,我有一个执行登录的main.js
:
主.js
module.exports = {
returnSessionToken: function(success, error) {
var email = email_X;
var pwd = password_Y;
[...]
function(error, response, body) {
var login = JSON.parse(body);
success(login.sessionToken)
}
然后我有一个index.js
,我可以在其中检索登录用户的一些信息:
索引.js
var authToken = require("./main");
authToken.returnSessionToken((result) => {
'my_website_token': result,
[...]
}
在我的express
项目中,我将这两个文件放在一个js
文件夹中。我正在尝试做的是获取登录页面form
的电子邮件和密码并将其传递给我的main.js
文件(email_X
和password_Y
),然后调用index.js
。我知道如何获取routes
文件夹中的req.body.email
和req.body.password
,但无法弄清楚如何使这些文件进行通信。
我还尝试将app.js
文件编辑为:
应用.js
var login = require('./js/main');
然后
app.use('/myaccount', login);
但没有成功。 任何帮助将不胜感激。谢谢!
我对细节和看起来缺少一些步骤感到有些困惑,但看起来问题可能是由您设置和引用主模块的方式引起的.js。
app.use('/myaccount', login)
将向主模块发送两个对象.js通常称为 req 和 res.req 包含有关 HTTP 请求的信息。我相信来自表单HTTP帖子的数据是在req.body中发送的。
请参阅以下示例:
索引.js
var express = require('express');
var login = require('./login');
var app = express();
app.use('/login', login); // mount the sub app
登录.js
var express = require('express');
var login = express();
login.post('/', function (req, res) {
console.log(req.body); // should print your form data
// do your login logic here
res.status(200).end(); // Sends http response back
});
module.exports = login;
为了将来参考,这里有一个工作示例。谢谢瑞安·维拉纽瓦的帮助!
主.js
module.exports = {
returnSessionToken: function(email, pwd, success, fail) {
var email = email;
var pwd = pwd;
success(token)
[...]
}
索引.js
module.exports = {
returnUserData: function(authToken, success) {
[...]
'my_website_token': authToken,
}
应用.js
var myaccount = require('./routes/myaccount');
app.use('/myaccount', myaccount);
路由/我的帐户.js
var express = require('express');
var router = express.Router();
var login = require('../js/main')
router.post('/', function(req, res) {
var email = req.body.email
var password = req.body.password
login.returnSessionToken(email, password, (token) => {
console.log("return token: ", token)
var logged = require('../js/index')
logged.returnUserData(token, (myData) => {
res.render('myaccount', { myData: myData });
})
},
(fail) => {console.log(fail)})
})
module.exports = router;