Dec*_*ver 8 node.js node-modules
我需要在我的文件中使用 require() ,以便我可以使用“readline”,但我还需要使用 import 以便我可以使用模块。但是当我在模块内部使用 require 时,它说require is not Defined。这是代码:
var r1 = require('readline')
import car from './carclass.mjs'
var input = ""
var questionToAsk = ""
const question1 = () => {
return new Promise((resolve, reject) => {
r1.question(questionToAsk, (answer) => {
input = answer
resolve()
})
r1.question()
})
}
const main = async () => {
console.log("What is the Brand?")
await question1()
var brandName = input
console.log("What is the Model?")
await question1()
var modelName = input
console.log("What is the Speed?")
await question1()
var carSpeed = input
var newCar = new car(brandName,modelName,carSpeed)
r1.close()
}
main()
Run Code Online (Sandbox Code Playgroud)
如何在模块中使用 require() 和 import ,或者是否有其他方法可以解决这个问题?
我建议您只使用import而不是require()如果您已经在 ESM 模块文件中,因为require()仅存在于 CJS 模块中,而不存在于 ESM 模块中。这是一个有效的代码示例:
import readline from 'readline';
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question("What's up?\n", data => {
console.log(`Got your result: ${data}`);
rl.close();
});
Run Code Online (Sandbox Code Playgroud)
在节点 v12.13.1 中,我使用以下命令行运行此命令:
node --experimental-modules temp.mjs
Run Code Online (Sandbox Code Playgroud)
仅供参考,从您的评论来看,您似乎跳过了这.createInterface()一步。
| 归档时间: |
|
| 查看次数: |
7460 次 |
| 最近记录: |