将 node.js sql 结果返回到其他文件
Posted
技术标签:
【中文标题】将 node.js sql 结果返回到其他文件【英文标题】:Return node.js sql result to other file 【发布时间】:2021-09-30 04:14:41 【问题描述】:我想创建一个网站,我可以在其中显示我的 mysql 数据库的结果。 我完成了网站和 sql 查询,但我坚持要返回我的 SQL 结果。 这是我使用 nodejs 显示我的 pug 文件的服务器代码: app.js
const express = require("express");
const app = express();
const path = require("path");
const router = express.Router();
var db=require("../node_js/db.js");
app.set("view engine","pug");
app.listen(3000, () =>
console.log("Application started and Listening on port 3000");
);
app.use(express.static(__dirname));
app.get("/", (req, res) =>
sql_result=query("SELECT * FROM test"); //here should i get my sql result
res.render("test",title:"Card",details:sql_result);
);
我的数据库连接代码: db.js
function query(sql)
return new Promise(function(resolve,reject)
var connection=db;
connection.query(sql,function(err,rows,fields)
if(err)
return reject(err);
resolve(rows[randomRow(0,rows.length)]);
);
);
query("SELECT * FROM SONGS").then(function(rows)
console.log(rows);
).catch((err)=>setImmediate(()=>throw err;));
我努力将查询中的“行”返回到我的 app.js 文件并在 'app.get("/") 中使用它。
【问题讨论】:
【参考方案1】:在第一个文件中,您应该要求其他文件能够使用其功能。 并且由于它返回一个承诺,您可以使用 await 来获取结果。
app.js
const express = require("express");
const app = express();
const path = require("path");
const query = require("./db.js");
const router = express.Router();
var db=require("../node_js/db.js");
app.set("view engine","pug");
app.listen(3000, () =>
console.log("Application started and Listening on port 3000");
);
app.use(express.static(__dirname));
app.get("/", async (req, res) =>
let sql_result=await query("SELECT * FROM test"); //here should i get my sql result
res.render("test",title:"Card",details:sql_result);
);
和 db.js
module.exports = function query(sql)
return new Promise(function(resolve,reject)
var connection=db;
connection.query(sql,function(err,rows,fields)
if(err)
return reject(err);
resolve(rows[randomRow(0,rows.length)]);
);
);
【讨论】:
谢谢你,伙计。我是等待函数的新手。以上是关于将 node.js sql 结果返回到其他文件的主要内容,如果未能解决你的问题,请参考以下文章