繁体   English   中英

如何在Express中使用外部javascript文件中的数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM