我正在为 Node.js 编写一个简单的服务器,并且我正在使用我自己的名为 User
的类,它看起来像:
function User(socket) {
this.socket = socket;
this.nickname = null;
/* ... just the typical source code like functions, variables and bugs ... */
this.write = function(object) {
this.socket.write(JSON.stringify(object));
}
};
然后在这个过程的后期我经常实例化它:
var server = net.createServer(function (socket) {
/* other bugs */
var user = new User(socket);
/* more bugs and bad practise */
});
我可以将我的 User
类定义移动到另一个 javascript 文件并以某种方式“包含”它吗?
最佳答案
你可以这样做:
user.js
class User {
//...
}
module.exports = User // 👈 Export class
server.js
const User = require('./user.js')
let user = new User()
这叫做 CommonJS模块。
ES 模块
从 Node.js 版本 14 开始,可以将 ES 模块与 CommonJS 一起使用。在 ESM documentation 中了解更多信息.
user.mjs(👈扩展很重要)
export default class User {}
server.mjs
import User from './user.mjs'
let user = new User()
关于javascript - 在 Node.js 中包含来自另一个文件的 JavaScript 类定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6998355/