簡體   English   中英

如何將變量從 Node JS 傳遞到前端 JS

[英]How to pass variables from Node JS to frontend JS

我正在嘗試將變量從我的 NodeJS 后端傳遞到 JS 腳本,但到目前為止沒有成功。 后端代碼如下所示:

應用程序.js

const express = require('express');
const app = express();
const path = require('path');
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));


port = process.env.PORT || 3000;
app.listen(port);
app.use(express.static(__dirname + '/'));

app.engine('ejs', require('ejs').renderFile);
app.use(cookieParser());

...
var Orders = (...);
app.get('/', (req,res,next) => {
        res.render("main", {Orders: Orders});
    
    });

其中 Orders 是 MySQL 數據的多維數組。

在前端,我嘗試了不同的 AJAX 調用,但來自 app.js 的變量沒有得到保存。 不過,它們確實會傳遞到 main.ejs 文件。

任何建議表示贊賞,這是我的第一個 NodeJS 項目:)

編輯:這就是與 db 相關的代碼的樣子(它有效):

const mysql = require('mysql');
var con = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '12345678',
    database: 'DBName'
    });
    
    con.connect(function(err) {
    if (err) 
    {console.log("error");
    throw err;}
    console.log("Connected!");
    });
 // Get earlier orders for that store
    con.query("SELECT employee_id, datum, time_hour, time_minute, duration, treatment FROM orders WHERE  store_id = *store_id*", function (err, result, fields) {
    if (err){throw err};
    Orders = result;
    });

在 Node.js 中:

app.get('/', (req,res,next) => {
    res.render("main", {Orders: Orders});
});

在 EJS 中:

<script type='text/javascript'>
    var orders = <%-JSON.stringify(Orders)%>
</script>

由於您使用的是 ejs,我認為您應該能夠在前端做這樣的事情

<script>
   var Orders = <%- JSON.stringify(Orders || null) %>
</script>

這里還有一個類似的問題和一些建議 - Passing an object to client in node/express + ejs?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM