这是我的CoffeeScript代码:
http.createServer((req, res) ->
if req.method is "POST"
req.on "data", (data) ->
queryData += data
req.on "end", ->
_.process req.url.substring(1), queryData, (response) ->
res.writeHead 200,
"Content-Type": "text/plain; charset=utf-8"
fs.appendFile "./log", log, (err) ->
if err
console.log err
else
res.end response
else
res.writeHead 405,
"Content-Type": "text/plain"
res.end()
).listen 55385, "127.0.0.1"
以下是我正在编译的内容:
http.createServer(function(req, res) {
if (req.method === "POST") {
req.on("data", function(data) {
return queryData += data;
});
return req.on("end", function() {
return _.process(req.url.substring(1), queryData, function(response) {
res.writeHead(200, {
"Content-Type": "text/plain; charset=utf-8"
});
return fs.appendFile("./log", log, function(err) {
if (err) {
return console.log(err);
} else {
return res.end(response);
}
});
});
});
} else {
res.writeHead(405, {
"Content-Type": "text/plain"
});
return res.end();
}
}).listen(55385, "127.0.0.1");
正如你所看到的那样,这是多余的因素returns
。
我知道最后一行有关return
的coffeescript-trick,但插入了这么多的void返回后,代码变得比编译的大。
有没有办法生成有效的Node.JS代码而没有额外的回报?
答案 0 :(得分:3)
重点是返回是。 CoffeeScript旨在促进编程的功能性,您可能应该从函数中返回一些内容。拥抱它!
答案 1 :(得分:0)
return
,您不希望出现return
语句。
queryData += data
return