上次我学习使用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 ..
答案 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项目而没有错误。如果你有自己的结构,那就好了。