2016-08-17 17 views
5

Nói rằng tôi có một tập tin class.js:Bao gồm lớp es6 từ tập tin bên ngoài trong Node.js

class myClass { 
    constructor(arg){ 
     console.log(arg); 
    } 
} 

Và tôi muốn sử dụng lớp myClass trong tập tin khác. Làm thế nào tôi sẽ đi về điều này?
Tôi đã thử:
var myClass = require('./class.js');
Nhưng nó không hoạt động.
Tôi đã xem module.exports nhưng chưa tìm thấy ví dụ hoạt động cho các lớp học es6.

Trả lời

13

Hoặc làm

module.exports = class MyClass { 
    constructor(arg){ 
     console.log(arg); 
    } 
}; 

và nhập khẩu với

var a = require("./class.js"); 
new a("fooBar"); 

hoặc sử dụng các cú pháp hơi mới (có thể yêu cầu bạn phải babelify mã của bạn đầu tiên)

export class MyClass { 
    constructor(arg){ 
     console.log(arg); 
    } 
}; 

và nhập khẩu với

import {myClass} from "./class.js"; 
1
export default class myClass { 
    constructor(arg){ 
     console.log(arg); 
    } 
} 

tập tin khác:

import myClass from './myFile'; 
+0

này không làm việc cho tôi. Tôi nghi ngờ tôi có một phiên bản lỗi thời của nút. –

+0

@BaldBantha điều này là bởi vì đây là cú pháp ES6 mới, bạn sẽ cần phải sử dụng babel để transpile ES6 của bạn thành ES5 để nút có thể chạy nó. Nút không hỗ trợ 'import' /' export' và sẽ không bao giờ (ít nhất là trong tương lai gần) – Downgoat

Các vấn đề liên quan