将一个Javascript文件导入到REPL会话中

3

我使用的是Windows 10 TP build 9926系统,正在使用nodejs。我希望能够将一个Javascript文件导入到当前运行在Windows命令提示符下的nodejs会话中,以便可以从REPL内调用来自导入脚本的函数。我该如何实现呢?我的“import”和“require”的尝试并没有成功。

我尝试了以下方法,在一个从包含“learn.js”JavaScript文件的目录中运行的nodejs会话中:

var n = require("learn.js")

接着出现了以下错误信息:

Error: Cannot find module 'learn.js'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:278:25)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at repl:1:9
    at REPLServer.defaultEval (repl.js:132:27)
    at bound (domain.js:254:14)
    at REPLServer.runBound [as eval] (domain.js:267:12)
    at REPLServer.<anonymous> (repl.js:279:12)
    at REPLServer.emit (events.js:107:17)

2
你是如何使用 require 的?请展示一下你的日志记录,这样我们就能告诉你出了什么问题。 - Bergi
2
如果你正在require一个CommonJS文件,那么一切都应该正常工作。require一个为Web浏览器编写的JS文件将无法工作。 - Leonid Beschastny
1个回答

2

learn.js文件需要如下所示:

"use strict";

module.exports.myfunc1 = function() {
    console.log("Hi there.");
}

module.exports.myfunc2 = function() {
    console.log("Goodbye.");
}

此外,您必须像这样要求它:
var n = require('./learn.js');

或者

var n = require('./learn');

你必须将路径相对于运行REPL的位置。Node不会自动检查本地目录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接