【问题标题】:Angula2/Node js - Requiring modules outside of app directoryAngula2/Node js - 需要应用程序目录之外的模块
【发布时间】:2016-07-22 06:42:53
【问题描述】:

我正在尝试从 js 文件和我的组件中导入模块,但它失败并出现以下错误:SyntaxError: Unexpected token

我的解决方案结构(你也可以看看我在github上的测试example

>/
>/model
>  testModel.js
>/public
>  /app
>    app.component.ts
>    main.ts
>app.js
>package.json

这在 app.component.ts 中失败

var test = require("../../testModel");

testModel.js

    /// <reference path="../typings/globals/node/index.d.ts" />
    (function () {
        module.exports.config = "testing config";

     })();

但是,如果我将 /model 目录移动到 /app 目录,它就可以工作。所以底线是,我无法导入任何不属于 /app 目录的模块,Angular 2 等除外。

我的 app.js

var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var routes = require('./routes');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'ejs');

// uncomment after placing your favicon in /public
//app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(require('stylus').middleware(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes.index);

index.html

 System.config({
            packages: { 'app': { defaultExtension: 'js' }           
            }
        });
        System.import('app/main')
                .then(null, console.error.bind(console));

【问题讨论】:

    标签: node.js express typescript angular


    【解决方案1】:

    当您将 /models 留在应用根目录中时,它不起作用的原因是您没有将其作为静态资产提供。

    如果您想保留它而不是将其放在您的/public 目录中,那么您需要将其作为静态资源添加到您的快速应用程序中。

    在您的路由之前添加以下行与您的其余中间件

    app.use(express.static(path.join(__dirname, 'models')));

    【讨论】:

    • 感谢您的建议,成功了! - 除了您在 /app/app.component.ts 中的分辨率之外,我还必须为导入的资源添加 .js [var test = require("../../testModel.js") ]- 希望对某人有所帮助否则。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 2014-03-11
    • 2023-03-23
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    相关资源
    最近更新 更多