我有一个js文件,它向ejs发送了几个变量,并且可以工作,但是当我尝试运行第二个节点js进程并运行另一个js文件时,似乎不会在我第二次运行的进程中查找。
我需要做些什么才能使ejs文件识别和接收第二个js文件中的变量?
在网页上,我得到<var> is not defined
,即使我从第二个js文件进行渲染,它也可以追溯到第一个js文件的渲染。
我使用以下代码发送:
app.get('/', (req, res) => {
res.render('main', {
variable: value
}
});
编辑:
尽我所能添加示例...
first.js:
var variable1 = value1;
app.get('/', (req, res) => {
res.render('main', {
variable1: value1
}
});
second.js:
var variable2 = value2;
app.get('/', (req, res) => {
res.render('main', {
variable2: value2
}
});
当我加载main.ejs时,它说它在first.js中找不到变量2。为什么即使我从second.js传递它,它也在first.js中寻找该变量?
我有first.js,它计算一些变量并将其传递给main.ejs。我还拥有与执行相同功能的first.js分开运行的second.js。
它不会单独运行…或根本不会运行。
HTTP基于以下简单系统:
而那些东西是single
因此浏览器发送了对/
的请求,然后Express遍历已注册的路由,直到找到匹配项。
app.get('/', (req, res) => { res.render('main', { variable1: value1 } });
它运行该功能并生成响应。
它永远不会到达为同一路由注册的其他功能:它已经找到了允许它提供响应的路由。如果它继续前进并发送另一个响应,那么它将完全不同地执行EJS脚本,并且完全不同的响应是浏览器所期望的。
/
的路径。render
一次require
中。您应该实现辅助线程https://nodejs.org/api/worker_threads.html以使两个节点进程彼此通信