结束2014年2月我将节点下载到我的Windows 7机器的c:\ dev \ 0.10 \,并且node.exe打开正常。 受Smashing Node(一些书)的启发,我希望实现以下目标:
Firefox显示纯文本Smashing Node!如果我将它指向localhost:3000并在节点控制台中运行
node my-web-server.js
node.exe旁边的my-web-server.js文件包含
require('http').createServer(function(req,res){res.writeHead(200, ('Content-Type', 'text/html'));res.end('<marquee>Smashing Node!</marquee>');}).listen(3000);;
但我失败了:浏览器说
cannot connect with webserver on localhost:3000.
如果在节点中粘贴上面的oneliner,它会与
作出反应{ domain: null,
_events: ..etc... }
忽略这一点,浏览器F5导致Smashing Node!。
Node拒绝最简单的文件,比如在node.exe旁边有一个名为hello.js的文件,文件中包含ascii文本 的console.log( “你好”); 我输入:
node hello.js
节点返回
...
(深灰色的省略号) 预期是:节点返回hello
我输入一个不存在的文件:
node die
节点返回
...
如果我输入
var http = require('http');
节点:
undefined
(深灰色)预期是:好的,特别是因为上面的oneliner导致了一个Web服务器。
如果我输入
npm install colors
节点与
做出反应npm should be run outside of the node repl, in your normal shell. (Press Control-D to exit.)
当然
node --version
也会以省略号回复。
我该怎么办? 如何使节点处理文件?
答案 0 :(得分:2)
您需要在命令行shell上运行node hello.js
(和npm
)(例如cmd.com
或Windows PowerShell)。
您正尝试在Node REPL(节点控制台)中运行它,您只需在其中键入JavaScript。
答案 1 :(得分:0)
很难说Smashing Node在哪里失败,特别是作为单线程。代码在我的机器上运行正常,但您可以按如下方式拆分代码并添加一些console.log()以查看执行方式:
console.log('about to start listening for requests');
require('http').createServer( function(req,res) {
console.log('a request was received', req.url);
res.writeHead(200, ('Content-Type', 'text/html'));
res.end('<marquee>Smashing Node!</marquee>');
}).listen(3000);;
console.log('listening for requests');
像以前一样将此代码保存为my-web-server.js,然后从命令行“node my-web-server.js”运行并将浏览器指向localhost:3000
另外,我有一个非常基本的Node.js教程可以帮助您掌握基础知识:http://hectorcorrea.com/#/blog/introduction-to-node-js/51