angularJS与nodeJS

时间:2014-09-22 14:46:46

标签: node.js angularjs

上次我学习使用AngularJS和NodeJs,但是我遇到了一些问题。

第一: 我想加载..例如index.html或其他文件,现在我做这本手册,最简单的方法,但即使这样,我也遇到了包含在我收到的index.html中的类型文件的问题:

  

资源解释为样式表,但使用MIME类型text / html传输:...

我该如何纠正? 下面的代码。

    'use strict';

var http = require('http');
var fs = require('fs');
var mysql = require('mysql');


var render = function(response, fileName, code, httpCode){
  var code = code || 'utf8';
  var httpCode = httpCode || 200;

  fs.readFile(fileName, code, function(err, data){

      if(err) { return console.log(err); }
      response.writeHead(httpCode, {'Content-type': 'text/html; charset='+code});
      response.write(data);
      response.end();
  });

};


http.createServer(function(req, res){
    render(res, 'index.html');
}).listen(9999, '127.0.0.1');

console.log('Server running');

html:

 <!doctype html> <html class="no-js"><head>
     <meta charset="utf-8">
     <title></title>
     <meta name="description" content="">
     <meta name="viewport" content="width=device-width">
     <link rel="stylesheet" type='text/css' href="styles/main.css">
     </head><body></body></html>

我可以将nodejs服务器与gruntjs一起使用吗?如果是的话,我该怎么做? 有人知道任何教程只有角+节点?这意味着我知道非常好的angularJS,但我不能将它用于nodeJS ..

2 个答案:

答案 0 :(得分:1)

问题是您的浏览器请求了一个css文件,并且您返回了一个MIME类型为text / html的文件。您必须处理所有可能类型的文件(js,html,txt,css,...)。

我建议您使用像express这样的现有模块,这将为您节省大量时间。安装express后,通过执行以下操作来初始化静态文件服务器:

server.use(express.static(__dirname + '/public'));

答案 1 :(得分:1)

这就是我的文件夹结构与Angular JS + Node JS(使用Express JS)的结构

ProjectTitle
|_app
  |_bower_components
  |_images
  |_scripts
  |_styles
  |_views
  |_index.html
  |_favicon.ico
|_routes
|_test
|_.bowerrc
|_.jshintignore
|_.jshintrc
|_bower.json
|_Gruntfile.js
|_package.json
|_README.md
|_server.js

3要注意的事情

/ app - 包含角度静态应用程序,包括其所有依赖样式,脚本和图像

/ app / script - angular javascript文件

/server.js - node js web服务器代码,这里是示例代码

var express = require('express'),
http = require('http'),
path = require('path');

var app = express();

// all environments
app.configure(function() {
    app.set('port', process.env.PORT || 3000);
    app.use(express.logger('dev'));
    app.use(express.static(path.join(__dirname, 'app'))); // here you are mentioning which directory should be static directory for the project, in this case 'app'
    app.use(express.favicon());
    app.use(express.json());
    app.use(express.urlencoded());
    app.use(express.methodOverride());
    app.use(app.router);
});

http.createServer(app).listen(app.get('port'), function() {
    console.log('Express server listening on port ' + app.get('port'));
});

使用

启动节点js服务器
$ node server.js 

它将启动快速服务器,您可以通过在浏览器窗口中输入

来访问它
localhost:3000

最好查看Yeoman并安装Angular Generator。这只是为了设置正确的角度js项目而没有错误。如果你有自己的结构,那就好了。