首页 > 解决方案 > 从 ejs 或 javascript(browser) 文件中获取变量到 Express

问题描述

如何从 ejs 或 javascript 文件中获取值到 ExpressJS ?我的项目中有 ejs 和 javascript 文件。这两个文件都具有相同的变量,因此我需要找到一种方法从其中一个文件中获取该变量。问题是,当我尝试导入 ejs 文件时,出现语法错误,因为 ejs 文件具有 HTML 标签,例如 div、body、script 等。对于 Javascript 文件,它有 18,000 行,并且是为浏览器编写的。意思是,我得到了成千上万的错误,比如window is not definedblabla is not a functionx 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)

标签: javascriptexpressejs

解决方案


从 ejs 文件发送一个 ajax POST 请求并从 express 文件中获取该值。


推荐阅读