错误:ENOENT,运行`jsonplaceholder`时没有这样的文件或目录'data.json'

时间:2014-06-02 08:52:51

标签: node.js npm

当我运行jsonplaceholder时,我得到:

jsonplaceholder
JSONPlaceholder listening on http://localhost:3000

fs.js:432
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^
Error: ENOENT, no such file or directory 'data.json'
    at Object.fs.openSync (fs.js:432:18)
    at Object.fs.readFileSync (fs.js:286:15)
    at Object.index.load (/usr/local/lib/node_modules/jsonplaceholder/node_modules/json-server/node_modules/lowdb/node_modules/underscore.db/src/node.js:11:24)
    at Function.low.load (/usr/local/lib/node_modules/jsonplaceholder/node_modules/json-server/node_modules/lowdb/lib/index.js:110:29)
    at reset (/usr/local/lib/node_modules/jsonplaceholder/index.js:6:14)
    at Server.<anonymous> (/usr/local/lib/node_modules/jsonplaceholder/index.js:14:3)
    at Server.g (events.js:180:16)
    at Server.EventEmitter.emit (events.js:92:17)
    at net.js:1052:10
    at process._tickCallback (node.js:415:13)

我在Ubuntu 13.10

2 个答案:

答案 0 :(得分:2)

Project的作者在这里。最后,为了让你知道,这个(旧的)错误已得到修复。很抱歉给您带来不便。

答案 1 :(得分:0)

我仍然不确定这是否与过时的模块有关,或者是搞乱的npm安装或者我很幸运,但基本上问题是访问的路径&# 34; data.json&#34;是错的(可能没有错,但不完整)。

我所做的是打开文件:

gksudo gedit /usr/local/lib/node_modules/jsonplaceholder/index.js

并修改以下功能:

function reset() {
//  server.low.load('data.json') <-- ORIGINAL LINE
server.low.load(require('path').resolve(__dirname, 'data.json')); //<--MY FIX
}

只需保存文件,然后再次运行jsonplaceholder。