Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 全局变量不';无法在node.js服务器上工作_Javascript_Node.js_Server - Fatal编程技术网

Javascript 全局变量不';无法在node.js服务器上工作

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(

我有简单的javascript代码,我不明白为什么每次globalString都是零。即使在我打电话给high之后。它应该是全局变量,在方法调用之间是相同的

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
;问题是,考虑到代码的可读性和简单性:您如何不理解为什么会发生这种情况?