NodeJS - TypeError [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型。收到未定义(mkdirp 模块 nodejs)

时间:2021-03-08 14:55:51

标签: node.js npm

我有一个 Node/Angular 项目,由于这个错误而无法运行。我收到以下错误:

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined

该错误的更多上下文:

PS C:\Users\Vinay\retail-billpay-node> node server
internal/validators.js:124
    throw new ERR_INVALID_ARG_TYPE(name, 'string', value);
    ^

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined
    at validateString (internal/validators.js:124:11)
    at resolve (path.js:139:9)
    at pathArg (C:\Users\Vinay\retail-billpay-node\node_modules\mkdirp\lib\path-arg.js:15:10)
    at mkdirp (C:\Users\Vinay\retail-billpay-node\node_modules\mkdirp\index.js:10:10)
    at Object.<anonymous> (C:\Users\Vinay\retail-billpay-node\app\helpers\winston.js:26:3)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.<anonymous> (C:\Users\Vinay\retail-billpay-node\app\services\LogService.js:9:17)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14) {
  code: 'ERR_INVALID_ARG_TYPE'
}

如果有帮助,这是我的 package.json:

{
  "name": "retail-billpay-node",
  "version": "1.0.0",
  "description": "start your node express app from this boilerplate code",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "siddhant-np",
  "license": "ISC",
  "dependencies": {
    "async": "2.6.1",
    "bluebird": "3.5.3",
    "body-parser": "1.18.3",
    "crypto": "1.0.1",
    "csvtojson": "2.0.8",
    "dotenv": "6.0.0",
    "express": "4.16.3",
    "extract-zip": "1.6.7",
    "imap-simple": "4.3.0",
    "ioredis": "4.6.2",
    "kafka-node": "^5.0.0",
    "lodash": "4.17.10",
    "md5": "2.2.1",
    "mkdirp": "0.5.1",
    "moment": "2.22.2",
    "moment-timezone": "0.5.21",
    "mongoose": "5.2.9",
    "nodemailer": "5.1.1",
    "otp.js": "1.1.0",
    "request": "2.87.0",
    "util": "0.11.1",
    "winston": "3.0.0",
    "winston-daily-rotate-file": "3.2.1",
    "xlsx": "0.14.1",
    "xml-parse": "0.3.1",
    "xml2js": "0.4.19",
    "xmlbuilder": "10.0.0"
  }
}

1 个答案:

答案 0 :(得分:0)

好的,我找到了问题所在。我以为错误告诉我路径未定义。事实上,它说传递给 path.join() 的变量是未定义的。那是因为我忘记将我的 .env 文件添加到根目录,以便它可以获取这些变量。

由于这是一个企业项目,所以他们不会在源代码中保留 .env 文件,我问他们并将其放在根目录中。