[英]Node.js server not working
我也是node.js的新手,并通过教程来获取基础知识
sys = require("sys");
var http = require("http");
var url = require("url");
var fs=require("fs");
http.createServer(function(request,response){
sys.puts("I got kicked");
//var _get = url.parse(request.url, true).query;
request.on("end", function () {
fs.readFile("test.txt", 'utf-8', function (error, data) {
// Write headers.
response.writeHead(200, {'Content-Type': 'text/plain'});
// Increment the number obtained from file.
data = parseInt(data) + 1;
// Write incremented number to file.
fs.writeFile('test.txt', data);
// End response with some nice message.
response.end('This page was refreshed ' + data + ' times!');
});
});
//response.write("Hello World");
//response.end('Here is your data: ' + _get['data']);
}).listen(8080);
sys.puts("Server Running on 8080");
从http://net.tutsplus.com/tutorials/javascript-ajax/node-js-for-beginners/获得此代码,但它无法正常工作,我从浏览器中收到“没有收到数据”错误。 严重痴迷我想知道它有什么不对。 如果我把request.end()放在request.on()之外它会工作,但不会识别数据对象...帮助!
你不想使用request.on
但你确实想在readFile
回调中放入response.end
,否则它会在读出数据之前返回:
var sys = require("sys");
var http = require("http");
var url = require("url");
var fs=require("fs");
http.createServer(function(request,response){
sys.puts("I got kicked");
//var _get = url.parse(request.url, true).query;
fs.readFile("test.txt", 'utf-8', function (error, data) {
// Write headers.
response.writeHead(200, {'Content-Type': 'text/plain'});
// Increment the number obtained from file.
data = parseInt(data) + 1;
// Write incremented number to file.
fs.writeFile('test.txt', data);
// End response with some nice message.
response.end('This page was refreshed ' + data + ' times!');
});
}).listen(8080);
sys.puts("Server Running on 8080");
正如@chris所说,你的计数器每次都会增加2。
只是你首先没有任何文件存档。
顺便说一下,感谢favicon.ico请求,每个人都可以获得2次刷新
(我没有得到你提到的错误。你正在使用什么node.js版本?)
更新:好的,我做了一些编辑,现在检查
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.