变量?"/>
如何在mysql查询(NodeJS和express)中正确使用变量?
我正在尝试使用 fast-csv 库将 MySQL 数据库从 Nodejs 和 Express 导出到 CVS 文件。 而且我相信我能够使用这段代码运行。 它创建了 mysql 查询的 datalog.csv。
1:在 connection.query 命令中没有任何变量。(有效)
app.get("/exportcsv",(req,res) => {
connection.query("SELECT * FROM sensorva WHERE time BETWEEN '2023-03-01 22:30:00'
AND '2023-03-02 22:31:00';",function(err,results){`
//JSON
const jsonData = JSON.parse(JSON.stringify(results));
console.log("jsonData", jsonData);
//csv
fastcsv
.write(jsonData, { headers: true })
.on("finish", function () {
console.log("Write to datalog.csv sucessfully!");
})
.pipe(ws);
});
});
//PORT
app.listen(3000,function(){
console.log("Node app is running");
});
2:但是,当我更改为在 connection.query 命令中使用一些变量时(subdate1,subdate2) (没用)
let subdate1 = '2023-03-01 22:30:00'
let subdate2 = '2023-03-02 22:31:00'
app.get("/exportcsv",(req,res) => {
connection.query("SELECT * FROM sensorva WHERE time BETWEEN subdate1 AND subdate2
;",function(err,results)
它返回错误:
undefined:1
undefined
^
SyntaxError: Unexpected token u in JSON at position 0
at JSON.parse (<anonymous>)
at Query.onResult (/home/banatus/node/index.js:28:30)
3: 所以我尝试了另一种方式来放置 ('subdate1','subdate2') 没用
app.get("/exportcsv",(req,res) => {
connection.query("SELECT * FROM sensorva WHERE time BETWEEN 'subdate1' AND 'subdate2'
;",function(err,results){
});
返回信息:
Node app is running
jsonData []
Write to datalog.csv sucessfully!
结论:它写入了空的 jsonData 并创建了一个空的 datalog.csv
回答如下:更多推荐
如何在mysql查询(NodeJS和express)中正确使用变量?
发布评论