Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node js初学者遇到错误_Javascript_Node.js - Fatal编程技术网

Javascript Node js初学者遇到错误

Javascript Node js初学者遇到错误,javascript,node.js,Javascript,Node.js,这是我为一个简单的node.js应用程序编写的代码: 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.

这是我为一个简单的node.js应用程序编写的代码:

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);
当我尝试运行它时,会出现一个错误,内容如下:

path.exists(doc, function fileExists(exists) {
                                    ^
                                  TypeError:Undefined is not a function

这是从一个教程中复制出来的,所以我不确定是怎么回事。(注:我正在使用Visual Studio)

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

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
不是一个函数,该函数存在于。

@DavidSherret下的
fs
模块中-但是当您获得堆栈跟踪时,命名函数表达式更容易调试。这修复了它。非常感谢@作为对回答者的礼貌姿态,如果它解决了你的问题,你能把它标记为接受答案吗。