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