![](/img/trans.png)
[英]Nodejs, Express How to pass variable to route and use it in external JavaScript file?
[英]How to use data in external javascript file from express
我正在使用node.js express创建应用程序,我想从Express中传递一些数据并在外部javascript文件中使用。
这是我的app.js
const express=require('express');
const path=require('path');
const app=express();
const bodyParser=require('body-parser');
//configure app
app.set('view engine','ejs');
app.set('views',path.join(__dirname,'views'));
//use middleware
app.use(express.static(path.join(__dirname, 'bower_components')));
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
//define routes
var arrayData = [
{ id: 1, desc: "Nitesh" },
{id:2,desc:"Raviaknt"}
]
app.get('/',function(req,res){
res.render('index', arrayData);
});
app.listen(800,function(){
console.log('hi');
})
这是我的index.ejs文件
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<link rel="stylesheet" href="bootstrap/dist/css/bootstrap.css"/>
</head>
<body>
<script src="demo.js"></script>
</body>
</html>
这是我最后的demo.js文件
在这里我如何使用在快递传递的arrayData
您必须将其放在JavaScript可以访问的位置。 (外部JavaScript并不是特别相关)。
目前,您正在将其传递给模板渲染器,然后忽略它。
通常,您应该将一个对象而不是数组传递给模板渲染器,因此您需要更多类似这样的东西:
res.render('index', { myArray: arrayData });
然后,如何访问它取决于所使用的模板引擎。
您可以通过多种方式将其注入页面。
<meta>
元素或data-*
属性中。 <script>
元素并将其设置为全局变量。 请注意,使用后两种方法,您最好将数据序列化为JSON字符串,或者这样做对实现该技术非常困难。
您也可能会忘记将其注入到页面中,并通过单独的URL使其可用(仅将其输出为JSON)。 然后,您可以让客户端JavaScript使用XMLHttpRequest或fetch来请求它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.