javascript - TypeError:无法读取未定义的属性“data_paths”
问题描述
从 2014 年开始,我一直在关注一个任意但绝对出色的教程。我什至无法超越第一部分。
我在处理一些非常基本的导出时遇到错误。首先,我会记下我的代码(多么令人反感)并检查我的错误
包.json:
{
"name": "hoarserver",
"version": "0.0.1",
"private": true,
"dependencies": {
"minimist": "*",
"extend": "*",
"binary-parser": "*",
"mongoose": "*",
"underscore": "*"
}
}
server.js:
require(__dirname + '/Resources/config.js');
var fs = require('fs');
var net = require('net');
var i_files = fs.readdirSync(__dirname + "/Initializers");
i_files.forEach(function(file) {
console.log('Loading initializers ' + file);
require(__dirname + "/Initializers/" + file);
});
var model_files = fs.readdirSync(__dirname + "/Models");
model_files.forEach(function(file) {
console.log('Loading models ' + file);
require(__dirname + "/Models/" + file);
});
tiles = {};
var tile_files = fs.readdirSync(config.data_paths.tiles);
tile_files.forEach(function(file) {
console.log('Loading tile ' + file);
var tile = require(config.data_paths.tiles + file);
tiles[tile.tid] = tile;
});
console.log(config.database);
配置.js:
var args = require('minimist')(process.argv.slice(2));
var extend = require('extend');
//Store the environment variable
var environment = args.env || "test";
//Common config... ie: name, version, max player etc...
var common_conf = {
name: "HOARServer",
version: "0.0.1",
environment: environment,
data_paths: {
tiles: __dirname + "\\Game Data\\" + "Tiles\\",
cosmetics: __dirname + "\\Game Data\\" + "Cosmetics\\",
objects: __dirname + "\\Game Data\\" + "Objects\\"
}
};
var conf = {
production: {
ip: args.ip || "0.0.0.0",
port: args.port || 8081,
database: "mongodb://127.0.0.1/hoar_p"
},
test: {
ip: args.ip || "0.0.0.0",
port: args.port || 8082,
database: "mongodb://127.0.0.1/hoar_t"
}
};
extend(false, conf.production, common_conf);
extend(false, conf.test, common_conf);
module.exports = config = conf[environment];
问题出现在 Webstorm 建议config
元素尚未导出的地方,尽管它在导出时被(hackily)定义为conf[environment]
. 当我运行代码时,配置运行 server.js,环境设置为test
; 我漂亮的控制台输出不仅告诉我 data_paths 未定义,它还告诉我配置 ITSELF 也未定义!:)
var tile_files = fs.readdirSync(config.data_paths.tiles);
^
TypeError: Cannot read property 'data_paths' of undefined
at Object.<anonymous> (C:\Users\autum\WebstormProjects\HOARServer\server.js:17:40)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Function.Module.runMain (module.js:693:10)
at startup (bootstrap_node.js:191:16)
at bootstrap_node.js:612:3
Process finished with exit code 1
我有:
- Node.js Core 已正确安装和启用
- 做了一个文件->使缓存无效/重新启动
- 重新启动我的电脑(在此处插入 IT 专业 PTSD)
- 哭了。
有什么帮助吗?:)
解决方案
推荐阅读
- python - 如何处理 argmax 的不可微性
- angular - 为文本溢出添加额外的行
- angular - 创建表单后如何在离子选择中设置默认值?
- c# - 我如何处理动态生成的文本框
- jenkins - Jenkins 声明性管道发布失败或已修复
- c# - 尝试在 IIS 8.5 上使用 HTTPS 访问目录但使用 HTTP 工作时,找不到服务器错误资源 404
- reactjs - 失败的道具类型:提供给“TypeaheadContainer(WrappedTypeahead)”的无效道具“defaultSelected”
- django - django在模型上具有相同关系的多个多对多字段
- c# - 如何以有效的方式从字符串(xml)中获取所需的子字符串?
- java - 杰克逊反序列化期间如何忽略json数组的类型信息?