Node.JS 找不到 json 文件,一切正常

Posted

技术标签:

【中文标题】Node.JS 找不到 json 文件,一切正常【英文标题】:Node.JS cannot find json file, everything is right 【发布时间】:2020-10-19 04:08:29 【问题描述】:

当我使用我的测试应用程序时,我收到此错误:

C:\Users\****\Downloads\noded.js website tetstst>node app.js
internal/modules/cjs/loader.js:985
  throw err;
  ^

Error: Cannot find module 'd.json'
Require stack:
- C:\Users\*****\Downloads\noded.js website tetstst\app.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:982:15)
    at Function.Module._load (internal/modules/cjs/loader.js:864:27)
    at Module.require (internal/modules/cjs/loader.js:1044:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (C:\Users\****\Downloads\noded.js website tetstst\app.js:4:17)
    at Module._compile (internal/modules/cjs/loader.js:1158:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
    at Module.load (internal/modules/cjs/loader.js:1002:32)
    at Function.Module._load (internal/modules/cjs/loader.js:901:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12) 
  code: 'MODULE_NOT_FOUND',
  requireStack: [ 'C:\\Users\\*****\\Downloads\\noded.js website tetstst\\app.js' ]

我的代码是:

const express = require('express')
const app = express()
const fs = require('fs')
const details = require('d.json')
const bcrypt = require('bcrypt')
app.set('view engine', 'ejs')

const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded( extended: true ));

app.get('/', function (req, res) 
  res.render('index')
)

app.post('/', function (req, res) 
    res.render('index');
    const email = req.body.email
    const username = req.body.username
    if(!details[username]) 
        details[username] = 
            "email": email,
            "password": "plain"
        
        const password = bcrypt.genSalt(saltRounds, function(err, salt) 
            bcrypt.hash(req.body.password, salt, function(err, hash) 
                details[username].password = hash
            );
        );
    else
        if(details[username])
            return res.render('index', weather: 'Pass!' + username, error: null);
        else
            return res.render('index', weather: 'No User Found For:' + username, error: null);
        
    
    
)

app.listen(3000, function () 
  console.log('Example app listening on port 3000!')
)

这是我的目录图片:

希望有人能回答并节省我和其他人的时间。

我的操作系统:

Windows 64 位 Windows 家庭 10 Node.JS 版本 12.8.1 LTS Visual Studio Code(不确定是否重要)

【问题讨论】:

如果 json 和你的 nodejs 文件是同一个目录,你需要用const details = require('./d.json') 来要求它,这样它才能看当前目录。如果您不提供任何路径,它将查看node_modules 。 /d.json 将是必需的 【参考方案1】:
const details = require('d.json')

一切正常

不,不是。尝试使用相对于工作目录的显式路径,如下所示:

const details = require('./d.json')

来自the documentation:

require 在哪里找到文件的规则可能有点复杂,但一个简单的经验法则是,如果文件不是以“./”或“/”开头,那么它要么被视为核心模块(并且检查了本地 Node.js 路径),或者本地 node_modules 文件夹中的依赖项。如果文件以“./”开头,则它被认为是调用 require 的文件的相对文件。

【讨论】:

天!这帮助太大了,我什至无法用言语表达。【参考方案2】:

查看以下link

const details = require('./d')
const data = require('path/to/file/filename');

【讨论】:

以上是关于Node.JS 找不到 json 文件,一切正常的主要内容,如果未能解决你的问题,请参考以下文章

node.js 要求找不到自定义模块

尽管已安装模块,但 Node.js 找不到模块

Node.js AWS 部署错误:找不到模块

heroku node.js bash:节点:找不到命令

npm pack / publish:找不到文件

en.json 在角度电子上找不到错误