Javascript 全局变量不';无法在node.js服务器上工作
我有简单的javascript代码,我不明白为什么每次globalString都是零。即使在我打电话给high之后。它应该是全局变量,在方法调用之间是相同的Javascript 全局变量不';无法在node.js服务器上工作,javascript,node.js,server,Javascript,Node.js,Server,我有简单的javascript代码,我不明白为什么每次globalString都是零。即使在我打电话给high之后。它应该是全局变量,在方法调用之间是相同的 const express = require('express'); const { exec } = require('child_process'); const bodyParser = require('body-parser'); const cors = require('cors'); const fs = require(
const express = require('express');
const { exec } = require('child_process');
const bodyParser = require('body-parser');
const cors = require('cors');
const fs = require('fs');
const app = express();
app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
var test_out = "";
var globalString = 0;
app.post('/high', (req, res) => {
globalString = 1;
return res.status(200).json({ result: 'ok' , message: globalString.toString() });
});
app.post('/low', (req, res) => {
globalString = 0;
return res.status(200).json({ result: 'ok' , message: globalString.toString() });
});
app.post('/state', (req, res) => {
globalString = 0;
return res.status(200).json({ result: 'ok' , message: globalString.toString() });
});
app.listen(4000, () => console.log('Server is up.'));
正如上面评论中所建议的“每次调用api时,您都在设置globalString 0”
const express=require('express');
const{exec}=require('child_process');
const bodyParser=require('body-parser');
const cors=需要(“cors”);
常数fs=要求('fs');
常量app=express();
应用程序使用(cors());
use(bodyParser.json());
use(bodyParser.urlencoded({extended:true}));
var测试_out=“”;
变量globalString=0;
应用程序发布(‘/高’,(请求,回复)=>{
globalString=1;
返回res.status(200).json({result:'ok',消息:globalString.toString()});
});
应用程序发布(‘/低’,(请求,回复)=>{
//globalString=0;每次调用此api时都将globalString设置为0
返回res.status(200).json({result:'ok',消息:globalString.toString()});
});
应用程序发布('/state',(请求、回复)=>{
//globalString=0;每次调用此api时都将globalString设置为0
返回res.status(200).json({result:'ok',消息:globalString.toString()});
});
app.listen(4000,()=>console.log('服务器启动');
确切时间是什么时候0
?你说“每次”是指什么?“甚至在我打电话给high之后。”打电话给high之后你在做什么?您正在/low
和/state
处理程序中将其设置为0
。我猜/state
的请求应该是.get()
,而不应该将全局字符串设置为零。一旦你解决了这个问题,请求/high,然后获取/state,你就会发现它工作得很好。我试用了你的代码:http://localhost:4000/high
返回{“result”:“ok”,“message”:“1”}
LUKE,以防您错过这一点:您的代码故意在每个路由中将变量设置为0,但/high
;问题是,考虑到代码的可读性和简单性:您如何不理解为什么会发生这种情况?