javascript - 从 ejs 或 javascript(browser) 文件中获取变量到 Express
问题描述
如何从 ejs 或 javascript 文件中获取值到 ExpressJS ?我的项目中有 ejs 和 javascript 文件。这两个文件都具有相同的变量,因此我需要找到一种方法从其中一个文件中获取该变量。问题是,当我尝试导入 ejs 文件时,出现语法错误,因为 ejs 文件具有 HTML 标签,例如 div、body、script 等。对于 Javascript 文件,它有 18,000 行,并且是为浏览器编写的。意思是,我得到了成千上万的错误,比如window is not defined,blabla is not a function,x is not defined等。
我尝试使用 module.exports 导出它们,当我尝试将其导入服务器文件时,'const example = require('./x/index.ejs)'
我得到了两个文件的错误。
// The thing that I want an example
// Server side
const x = require('./x/file)'
app.get('/havaist/live', (req, res) => {
console.log(x.theWantedVariable)
})
// Ejs
<body>
<div> <h1> Hey there. </h1> </div>
<script>
.
..
...
....
here the data that needs get fetched from ExpressJS.
....
...
..
.
</script>
</body>
//Javascript
.
..
...
....
here the data that needs get fetched from ExpressJS.
....
...
..
.
ERRORS:
When trying to import EJS:
/home/nimda/Documents/Devspace/hikvision-api/views/index.ejs:1
(function (exports, require, module, __filename, __dirname) { <body onload="getCameraNo();realplay();">
^
SyntaxError: Unexpected token <
at new Script (vm.js:79:7)
at createScript (vm.js:251:10)
at Object.runInThisContext (vm.js:303:10)
at Module._compile (internal/modules/cjs/loader.js:657:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
When trying to import JAVASCRIPT:
/home/nimda/Documents/Devspace/hikvision-api/views/dist/jsPlugin-1.2.0.min.js:10
})(window, function() {
^
ReferenceError: window is not defined
at Object.<anonymous> (/home/nimda/Documents/Devspace/hikvision-api/views/dist/jsPlugin-1.2.0.min.js:10:4)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (/home/nimda/Documents/Devspace/hikvision-api/server.js:9:13)
at Module._compile (internal/modules/cjs/loader.js:689:30)
解决方案
从 ejs 文件发送一个 ajax POST 请求并从 express 文件中获取该值。
推荐阅读
- excel - VBA Excel 用表格模拟轨迹变化
- d3.js - 如何获取d3.js中数据集中给定范围之间的最小值和最大值
- mysql - SQL 在 IF 条件后给出语法错误
- ios - 如何检查 UICollectionViewCell 子类是否符合协议
- c++ - 在使用共享指针调用的函数中使用 this 是有效的
- akeneo - 弹性搜索索引
- apache-spark - 如何从 Spark 正确读取 S3 中的 .csv 文件?- 无法读取文件的页脚
- node.js - 当我创建 CSV 文件时,标题值在每一行中重复
- r - 根据其他列提取值
- django - Django 查询:返回一个将转换为“AND (...)”的 Q 对象