我一直在寻找我的问题的答案,整整两天没有结果。我知道有很多线索关于“角度未定义”,但他们的答案无济于事。起点是我在DigitalOcean上为SPA部署了MEAN堆栈。还有咕噜声使用。该应用程序已成功运行,直到grunt尝试运行具有angular.module(... call。<。p>的server.js文件。
文件夹结构如下:
node_modules
- 应该有
这样的一堆模块公共
- LIB
- angular,angular-resource,jquery等文件夹
路由
- index.js
的src
视图
- index.html,index.jade,layout.jade
bower.json
gruntfile.js
karma.conf.js
的package.json
server.js
bower.json
{
"name": "meanjs",
"version": "0.3.2",
"description": "Fullstack JavaScript with MongoDB, Express, AngularJS, and Node.js.",
"dependencies": {
"bootstrap": "~3",
"angular": "~1.3.0",
"angular-resource": "1.3.0",
"angular-animate": "~1.3.0",
"angular-mocks": "~1.3.0",
"angular-bootstrap": "~0.11.0",
"angular-ui-utils": "~0.1.1",
"angular-ui-router": "~0.2.10"
}
}
server.js
'use strict';
var cheerio = require('cheerio'),
http = require('http'),
iconv = require('iconv-lite'),
request = require('request'),
mongoose = require('mongoose'),
iconv = require('iconv-lite');
angular.module('myapp', []);
var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public'));
app.set('view engine', 'jade');
app.get('/', function (req, res) {
res.sendfile('./views/index.html');
});
app.listen(80);
的index.html
<!DOCTYPE html>
<html lang="en" ng-app="myapp">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.0/angular.min.js"></script>
<script src="/opt/mean/server.js"></script>
<meta charset="UTF-8">
<title>Myapptitle</title>
</head>
<body>
<div id="app">
<p>Hallelujah, server is running!</p>
</div>
</body>
</html>
我一直在转移与index.html文件相关的.js文件的所有部分,依此类推。该应用程序的要点是让server.js运行并具有几个不同的基于.js文件的角度模块来处理server.js的JSON文件。我只是没有任何线索留下什么尝试,请给我一些建议。如有必要,我很乐意为您提供更多代码文件。
答案 0 :(得分:2)
server.js是一个Node / Express应用程序,不应包含Angular代码。通常,您将拥有Angular应用程序的公共/文件夹,而angular.module通常首先在public / app.js中调用
有关设置的一个非常好的示例,请参阅http://meanjs.org - 使用MEAN.JS快速构建示例结构,并查看/server.js和public / app.js以获取用法示例。
最后,在您的HTML文件中,您不会包含server.js文件,而是包含您的app.js.请记住,server.js用于服务器端Node / Express,并且与前端代码无关。