Angular:未捕获的ReferenceError:app未定义

时间:2017-06-07 12:36:01

标签: javascript html angular mean-stack mean

我正在尝试创建这个非常简单的meanstack应用程序并且它几乎正在运行,但在重定向到索引页面时出现未被捕获的引用错误。服务器运行正常。浏览器在索引页面中显示文本(正在加载..)。但是由于自定义标签应该与选择器一起运行到app.component.ts并打印“我的第一个角度应用程序”,它不会。相反,它在控制台中说“应用程序未定义”。

有人可以帮忙吗?我是MEAN& amp;的新手Angular,如此精心制作。如果有任何(或许多)错误,请原谅我的愚蠢错误。

这是我的index.html

<html>
<head>
<title>MyTaskList</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="styles.css">
<!-- 1. Load libraries -->
<!-- Polyfill(s) for older browsers -->
<script src="node_modules/core-js/client/shim.min.js"></script>
<script src="node_modules/zone.js/dist/zone.js"></script>
<script src="node_modules/reflect-metadata/Reflect.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<!-- 2. Configure SystemJS -->
<script src="systemjs.config.js"></script>
<script>System.import(app).catch(function(err){ console.error(err);});</script>
</head>
<!-- 3. Display the application -->
<body>
<my-app>Loading...</my-app>
</body>
</html>

这是我的app.component.ts

import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: 'My First Angular App'
})
export class AppComponent { }

我的index.js

var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next){
res.render('index.html');
});

module.exports = router;

最后是我的server.js(起点)

var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');

var index = require('./routes/index');
var tasks = require('./routes/tasks');

var port = 3000;

var app = express();

app.set('views', path.join(__dirname, 'views'));
app.set('view engine','ejs');
app.engine('html', require('ejs').renderFile);
app.use(express.static(path.join(__dirname, 'client')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

app.use('/', index);
app.use('/api', tasks);

app.listen(port, function(){
console.log('Server started on port '+port);
});

1 个答案:

答案 0 :(得分:2)

app放在引号中,因为Javascript认为app是一个变量,但它实际上应该是一个字符串。