如何使用 CommonJS 方式正确导入
How to properly import using the CommonJS way
我对如何在名为 util.js 的文件中导入函数感到困惑,该文件只是反转字符串
function reverseString(str) {
var reversed = " ";
for (var i = str.length - 1; i >= 0; i--) {
reversed += str[i];
}
return reversed;
}
module.exports.reverseString = reverseString;
我想在另一个文件中访问它,这个文件叫做 server.js
这是我目前所掌握的。
var util = require('./util');
util.reverseString();
var reversed = reverseString(req.body);
res.send(reversed);
} else {
res.status(400).end()
}
});
我正在使用 postman 检查节点模块,但是当我 运行 它时,我得到
TypeError: Cannot read property 'length' of undefined
我知道反向代码有效,因为我之前测试过它,所以我假设我的导入不正确。但是任何帮助解决这个问题都会很棒。
reverseString
函数需要一个字符串类型的参数(也可以是数组),并且您正在迭代该参数。
但是在调用此函数时您没有传递任何参数,因此 str
参数设置为未定义。
undefined
没有任何长度 属性 所以它抛出了这个错误
(我的回答是针对ES5的。ES6中还有一些简写,比如default exports和named exports)
您可以使用单个导出:
module.exports = reverseString;
然后:
var reverseString = require('./util');
reverseString("bobba");
//shorthand:
require('./util')("bobba");
或return一个命名导出的对象:
module.exports = { reverseString: reverseString };
然后:
var utils = require('./util');
utils.reverseString("bobba");
// shorthand:
require('./util').reverseString("bobba");
您需要引用该函数所在的库,因为您导入了一个变量。
var util = require('./util');
// util.reverseString(); // this does nothing
var req = { body: 'some string' };
var reversed = util.reverseString(req.body); // ref util here
我对如何在名为 util.js 的文件中导入函数感到困惑,该文件只是反转字符串
function reverseString(str) {
var reversed = " ";
for (var i = str.length - 1; i >= 0; i--) {
reversed += str[i];
}
return reversed;
}
module.exports.reverseString = reverseString;
我想在另一个文件中访问它,这个文件叫做 server.js
这是我目前所掌握的。
var util = require('./util');
util.reverseString();
var reversed = reverseString(req.body);
res.send(reversed);
} else {
res.status(400).end()
}
});
我正在使用 postman 检查节点模块,但是当我 运行 它时,我得到
TypeError: Cannot read property 'length' of undefined
我知道反向代码有效,因为我之前测试过它,所以我假设我的导入不正确。但是任何帮助解决这个问题都会很棒。
reverseString
函数需要一个字符串类型的参数(也可以是数组),并且您正在迭代该参数。
但是在调用此函数时您没有传递任何参数,因此 str
参数设置为未定义。
undefined
没有任何长度 属性 所以它抛出了这个错误
(我的回答是针对ES5的。ES6中还有一些简写,比如default exports和named exports)
您可以使用单个导出:
module.exports = reverseString;
然后:
var reverseString = require('./util');
reverseString("bobba");
//shorthand:
require('./util')("bobba");
或return一个命名导出的对象:
module.exports = { reverseString: reverseString };
然后:
var utils = require('./util');
utils.reverseString("bobba");
// shorthand:
require('./util').reverseString("bobba");
您需要引用该函数所在的库,因为您导入了一个变量。
var util = require('./util');
// util.reverseString(); // this does nothing
var req = { body: 'some string' };
var reversed = util.reverseString(req.body); // ref util here