将我从 EJS 获得的数据发送到我的其他 NodeJs 脚本(NodeJs express)
Send Data which I get from EJS to my other NodeJs Script (NodeJs express)
这是我的 Index.js 文件
const ig = require('./like');
const iglike = async() => {
await ig.initialize();
await ig.login('example', 'examplepass');
await ig.liketagsprocess(***tags***);
debugger;
};
module.exports = iglike;
这是我的controller.js(路线)
control.get('/like', (req, res) => {
res.render("like");
});
control.post('/like', (req, res, next) => {
let tags = req.body.likes;
console.log(tags);
const likeobj = require('./bin/index')(like);
res.send(likeobj.iglike);
next();
res.send(tags);
});
这是我获取数据的表单[EJS]
<% (tag = ['']) %>
<form action="/like" method="POST">
<% for (var i in tag){%>
Tag: <input type="text" name="likes" value="<%= tag[i].likes %>"/><br><br>
<button type="submit" value="accept">Send Tag</button><br><br><hr>
<%} %>
</form>
我是一名高中生,正在使用 Node Express 制作我的第一个 Web 应用程序。不好意思的解释。
我需要做的是让表单接受来自用户的数组并将其发送到“标签”下的Index.js。
使用此代码我只能接受一个字符串并在我的控制台中打印它。
当我去localhost/like
表单显示并在输入数据后将其打印在控制台中并在 index.js[ 中执行我的代码=14=]
我无法将控制台中打印的数据传递到我的 index.js 文件。
我收到这个错误
(node:7140) UnhandledPromiseRejectionWarning: ReferenceError: tags is not defined
感谢您的帮助!
您需要更改一些内容:
在您的 index.js 文件中,为您的函数添加一个参数:
const ig = require('./like');
const iglike = async (tags) => { // < here
await ig.initialize();
await ig.login('example', 'examplepass');
await ig.liketagsprocess(tags);
debugger;
};
module.exports = iglike;
在你的 controller.js 中,你可以在文件顶部导入你的 iglike 函数,并在你的路由中使用它,将标签作为参数传递:
const iglike = require('./bin/index');
control.get('/like', (req, res) => {
res.render("like");
});
control.post('/like', (req, res, next) => {
let tags = req.body.likes;
console.log(tags);
iglike(tags);
next();
res.send(tags);
});
在您的 ejs 文件中,您应该将输入的名称更改为 likes[]
,以便它可以是一个数组:
<% (tag = ['']) %>
<form action="/like" method="POST">
<% for (var i in tag){%>
Tag: <input type="text" name="likes[]" value="<%= tag[i].likes %>"/><br><br>
<button type="submit" value="accept">Send Tag</button><br><br><hr>
<%} %>
</form>
这是我的 Index.js 文件
const ig = require('./like');
const iglike = async() => {
await ig.initialize();
await ig.login('example', 'examplepass');
await ig.liketagsprocess(***tags***);
debugger;
};
module.exports = iglike;
这是我的controller.js(路线)
control.get('/like', (req, res) => {
res.render("like");
});
control.post('/like', (req, res, next) => {
let tags = req.body.likes;
console.log(tags);
const likeobj = require('./bin/index')(like);
res.send(likeobj.iglike);
next();
res.send(tags);
});
这是我获取数据的表单[EJS]
<% (tag = ['']) %>
<form action="/like" method="POST">
<% for (var i in tag){%>
Tag: <input type="text" name="likes" value="<%= tag[i].likes %>"/><br><br>
<button type="submit" value="accept">Send Tag</button><br><br><hr>
<%} %>
</form>
我是一名高中生,正在使用 Node Express 制作我的第一个 Web 应用程序。不好意思的解释。
我需要做的是让表单接受来自用户的数组并将其发送到“标签”下的Index.js。
使用此代码我只能接受一个字符串并在我的控制台中打印它。
当我去localhost/like
表单显示并在输入数据后将其打印在控制台中并在 index.js[ 中执行我的代码=14=]
我无法将控制台中打印的数据传递到我的 index.js 文件。
我收到这个错误
(node:7140) UnhandledPromiseRejectionWarning: ReferenceError: tags is not defined
感谢您的帮助!
您需要更改一些内容:
在您的 index.js 文件中,为您的函数添加一个参数:
const ig = require('./like');
const iglike = async (tags) => { // < here
await ig.initialize();
await ig.login('example', 'examplepass');
await ig.liketagsprocess(tags);
debugger;
};
module.exports = iglike;
在你的 controller.js 中,你可以在文件顶部导入你的 iglike 函数,并在你的路由中使用它,将标签作为参数传递:
const iglike = require('./bin/index');
control.get('/like', (req, res) => {
res.render("like");
});
control.post('/like', (req, res, next) => {
let tags = req.body.likes;
console.log(tags);
iglike(tags);
next();
res.send(tags);
});
在您的 ejs 文件中,您应该将输入的名称更改为 likes[]
,以便它可以是一个数组:
<% (tag = ['']) %>
<form action="/like" method="POST">
<% for (var i in tag){%>
Tag: <input type="text" name="likes[]" value="<%= tag[i].likes %>"/><br><br>
<button type="submit" value="accept">Send Tag</button><br><br><hr>
<%} %>
</form>