Javascript语法错误[Node JS]
我正在学习nodeJS,我有一个语法错误,我不明白。 有人能指出什么是语法错误,为什么我会得到它,以及如何绕过它吗Javascript语法错误[Node JS],javascript,node.js,syntax,syntax-error,Javascript,Node.js,Syntax,Syntax Error,我正在学习nodeJS,我有一个语法错误,我不明白。 有人能指出什么是语法错误,为什么我会得到它,以及如何绕过它吗 var http = require('http'); var url = require('url'); var server = http.createServer(function(req,res) { if (req.method == 'POST') { return res.end("Only get requests"); }
var http = require('http');
var url = require('url');
var server = http.createServer(function(req,res) {
if (req.method == 'POST') {
return res.end("Only get requests");
}
var st = url.parse(req.url,true);
if (st.indexOf("parsetime") > -1) {
var time = st.substring(st.indexOf("iso"));
var date = new Date(time);
var out = '{
"hour":'+date.getHours()+',
"minute":'+date.getMinutes()+',
"second":'+date.getSeconds()+',
}';
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(out);
} else if (st.indexOf("unixtime") > -1) {
var time = st.substring(st.indexOf("iso"));
var date = new Date(time);
var out = "{
'unixtime':"+date.getTime()+"
}";
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(out);
} else {
return res.end("404");
}
});
server.listen(process.argv[2]);
语法错误出现在第11行:“var out=”{“问题是您试图使用多行字符串,但在JavaScript中无法这样做。这样做可能更容易:
var out = '{';
out+='"hour":'+date.getHours(),
out+='"minute":'+date.getMinutes(),
out+='"second":'+date.getSeconds()
out+='}';
或者,更简单的方法是定义对象,然后使用JSON.stringify()
将其转换为字符串:
var outObj = {
hour:date.getHours(),
minute:date.getMinutes(),
second:date.getSeconds()
};
var obj=JSON.stringify(outObj);
这只是定义了一个普通对象,然后将其转换为JSON,删除此处的单引号:
var out = '{
"hour":'+date.getHours()+',
"minute":'+date.getMinutes()+',
"second":'+date.getSeconds()+',
}';
将上述内容更改为:
var out = {
"hour": date.getHours(),
"minute": date.getMinutes(),
"second": date.getSeconds(),
};
或者,如果我可能误认为字符串包含JSON对象,您需要以这种方式声明out
,并使用以下方法进行字符串化:
out = JSON.stringify(out);
删除引号
var out = {"hour":'+date.getHours()+',
"minute":'+date.getMinutes()+',
"second":'+date.getSeconds()+',
};
不,他正在尝试使用JSON,所以这样做是行不通的。他想要一个string@Markasoftware好的,将更新答案。前面还有一个类似的错误。另一个答案更好。当您可以返回json时,为什么要返回由字符串构建的json。这个答案实际上解释了错误的原因,而答案主要说明应该如何做从这个意义上说这是一个更好的答案。