我有一个登录应用程序但是我无法将表单(email
和password
)的凭据传递给我现有的.js
文件,在那里它执行一些逻辑并检索一些资讯
在我的login
页面上,我有form
个POST
方法。然后,我有main.js
执行登录:
main.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
我在其中检索已记录用户的一些信息:
index.js
var authToken = require("./main");
authToken.returnSessionToken((result) => {
'my_website_token': result,
[...]
}
在我的express
项目中,我将这两个文件放在js
文件夹中。我要做的是获取登录页面的form
的电子邮件和密码,并将其传递到我的main.js
文件(email_X
和password_Y
)然后调用index.js
。我知道如何在req.body.email
文件夹中获取req.body.password
和routes
,但stil无法弄清楚如何使这些文件进行通信。
我还尝试将app.js
文件编辑为:
app.js
var login = require('./js/main');
然后,
app.use('/myaccount', login);
但没有成功。 任何帮助将非常感谢。谢谢!
答案 0 :(得分:1)
我对细节感到有些困惑,看起来有些缺失的步骤,但看起来问题可能是由于您设置和引用main.js模块的方式造成的。
app.use('/myaccount', login)
将向您的main.js模块发送两个对象,通常称为req和res。 req包含有关http请求的信息。我相信表单HTTP帖子中的数据是在req.body中发送的。
见下面的例子:
<强> index.js 强>
var express = require('express');
var login = require('./login');
var app = express();
app.use('/login', login); // mount the sub app
<强> login.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;
答案 1 :(得分:0)
为了将来参考,这是一个有效的例子。谢谢Ryan Villanueva的帮助!
<强> main.js 强>
module.exports = {
returnSessionToken: function(email, pwd, success, fail) {
var email = email;
var pwd = pwd;
success(token)
[...]
}
<强> index.js 强>
module.exports = {
returnUserData: function(authToken, success) {
[...]
'my_website_token': authToken,
}
<强> app.js 强>
var myaccount = require('./routes/myaccount');
app.use('/myaccount', 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;