节点js初学者收到错误

时间:2015-06-17 20:37:28

标签: javascript node.js

这是我的简单node.js应用程序的代码:

 $ groovy program.groovy
 this goes to stdout
 this goes to stderr
 $ groovy program.groovy > output
 this goes to stderr
 $ cat output
 this goes to stdout
 $ groovy program.groovy > output 2> error
 $ cat error
 this goes to stderr

当我尝试运行它时,我收到一条错误信息:

var http = require('http');
var fs = require('fs');
var path = require('path');
var url = require('url');
var port = process.env.port || 1337;

http.createServer(function onRequest(req, res) {

var urlParts = url.parse(req.url);

var doc = '/docs' + urlParts.pathname;

path.exists(doc, function fileExists(exists) {

    if (exists) {

        res.writeHead(200, { 'Content-Type': 'text/plain' });
        fs.createReadStream(doc).pipe(res);

    } else {
        res.writeHead(404);
        res.end('Not Fouind\n');
    }
});
}).listen(port);

这是从教程中复制的,所以我不确定发生了什么。 (PS:我正在使用Visual Studio)

2 个答案:

答案 0 :(得分:9)

我认为path.exists已被弃用。我一直在使用fs.exists。试试吧。

答案 1 :(得分:3)

fs.exists(doc, function fileExists(exists) {

    if (exists) {

        res.writeHead(200, { 'Content-Type': 'text/plain' });
        fs.createReadStream(doc).pipe(res);

    } else {
        res.writeHead(404);
        res.end('Not Fouind\n');
    }
});

path.exists不是函数,该函数存在于fs.exists下的fs模块中。