一. 第一個node服務器
var http = require('http');
http.createServer(function (request, response) {
// 發送 HTTP 頭部
// HTTP 狀態值: 200 : OK
// 內容類型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 發送響應數據 "Hello World"
response.end('Hello World\n');
}).listen(8888);
// 終端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');
二.使用express搭建第一個服務器
var express = require("express"); // 導入express
var app = express(); // 實例化對象
app.get("/", function(request, response){
response.send("hello world")
})
app.get("/login", function(request, response){
response.send("登陸成功")
})
var server = app.listen(8888, function(){
var host = server.address().address;
var post = server.address().port;
console.log("the server was started at " + host + ":" + post)
})
以下均使用express框架:
三.搭建靜態資源服務器
使用靜態資源目錄
app.use(express.static("../static"))
var express = require("express"); // 導入express
var app = express(); // 實例化對象
app.use(express.static("../static")) // 使用靜態資源目錄
app.get("/", function(request, response){
response.send("hello world")
})
app.get("/login", function(request, response){
response.send("登陸成功")
})
var server = app.listen(8888, function(){
var host = server.address().address;
var post = server.address().port;
console.log("the server was started at " + host + ":" + post)
})
訪問(比如你的static目錄下有index.html):
127.0.0.1:8888/index.html
四.訪問接口指向靜態資源,使用訪問路徑代替資源路徑:
var express = require("express"); // 導入express
var app = express(); // 實例化對象
var fs = require("fs");
app.get("/test", function(request, response){
fs.readFile("../static/index.html",function(err,data){
response.write(data);
})
})
var server = app.listen(8888, function(){
var host = server.address().address;
var post = server.address().port;
console.log("the server was started at " + host + ":" + post)
})
訪問127.0.0.1:8888/test也可以同樣訪問到index.html文件,與127.0.0.1:8888/index.htm同樣效果,優點隱藏了資源路徑
提示:文中的response.write() 改爲response.send()時可下載該文件。
五、數據庫連接(mysql爲例)
var mysql = require("mysql"); // 引入mysql模塊
var connection = mysql.createConnection({ // 創建連接
host: 'localhost', // 數據庫服務器地址
user: 'root', // 數據庫服務器登錄賬號名
password: 'root', // 數據庫服務器登錄密碼
database: 'personalzone', // 數據庫
})
connection.connect(); // 開始連接
六、數據庫操作
database.query("select * from user", function(error, result){
console.log(error) // 錯誤反饋
console.log(result) // 查詢結果
})
七、服務器熱更新
安裝nodemon
npm install nodemon -g
安裝完成後可用nodemon代替node啓動服務器
// node main.js
nodemon main.js
現在已經可以達到熱更新效果。
當然也可以自行配置,不配置使用默認配置
{
"restartable": "rs", // 重啓模式
"ignore": [ // 忽略文件
".git",
".svn",
"node_modules/**/node_modules"
],
"verbose": true, // 是否需要輸出日誌
"execMap": { // 設置運行服務的後綴名與對應的命令
"js": "node --harmony"
},
"watch": [ // 需要監聽的文件
],
"env": {
"NODE_ENV": "development" // 運行環境
},
"ext": "js json" // 監聽後綴爲js json的文件更新
}