當前位置:首頁 » 網頁前端 » nodejs前端伺服器
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

nodejs前端伺服器

發布時間: 2022-04-01 15:10:00

1. 如何用nodejs做一個簡單的前端Static Server

var http = require('http');
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'me',
password : 'secret',
});
//開始你的mysql連接
connection.connect();

var server = http.createServer(function (req, res) {
//如果你發一個GET到的話
var url_info = require('url').parse(req.url, true);
//檢查是不是給/test的request
if(url_info.pathname === '/test'){
//把query用url encode,這樣可以用post發送
var post_data = require('querystring').stringify(url_info.query);
//post的option
var post_options = {
host: 'localhost',
port: 1337,
path: '/response_logic',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': post_data.length
}
};
//發出post
var request_made = http.request(post_options, function(response_received){
var buf_list = new Array();
response_received.on('data',function(data){
buf_list.push(data);
});
response_received.on('end',function(){
var response_body = Buffer.concat(buf_list);
res.end(response_body);
connection.query('insert into .........',function(err,rows,fields){
//處理你的結果
});
});
});
//發出post的data
request_made.end(post_data);
}
//這個是用來回復上面那個post的,顯示post的數據以表示成功了。你要是有別的目標,自然不需要這一段。
else{
req.pipe(res);
}
});
server.listen(1337, '127.0.0.1');
//在server關閉的時候也關閉mysql連接
server.on('close',function(){
connection.end();
});
console.log('listening on port 1337');

2. Node.js是屬於前端還是後端的技術

首先你得了解什麼nodejs,其次了解什麼後端技術及作用
1.node.js組成:谷歌瀏覽器的V8引擎、C++語言編寫的,本質上是一個JavaScript的運行環境。提到js,就能想到瀏覽器裡面的各種交互組件,非同步請求等等,它們依靠瀏覽器JavaScript 的引擎,來解析頁面的js代碼。
2.目前流行的後端語言就是PHP、Java、.Net,使用後端語言實現伺服器上的開發叫做後端技術。
3.nodejs就是讓JavaScript(js)可以實現伺服器上的開發。
4.JavaScript(前端語言)+nodejs(JavaScript的運行環境)=實現伺服器上的開發(後端技術),也就是說js+nodejs實現了後端開發的技術

3. 怎麼連接nodejs伺服器

前面已經學習了WebSocket API,包括事件、方法和屬性。詳情:WebSocket(二)--APIWebSocket是基於事件驅動,支持全雙工通信。下面通過三個簡單例子體驗一下。

簡單開始

1.安裝node。/

2.安裝ws模塊

ws:是nodejs的一個WebSocket庫,可以用來創建服務。

3.server.js

在項目裡面新建一個server.js,創建服務,指定8181埠,將收到的消息log出來。

//建立連接
var ws = new WebSocket("ws://localhost:8181"); var nickname = "";
ws.onopen = function (e) {
console.log('Connection to server opened');
} //顯示
function appendLog(type, nickname, message) { if (typeof message == "undefined") return; var messages = document.getElementById('messages'); var messageElem = document.createElement("li"); var preface_label; if (type === 'notification') {
preface_label = "<span class="label label-info">*</span>";
} else if (type == 'nick_update') {
preface_label = "<span class="label label-warning">*</span>";
} else {
preface_label = "<span class="label label-success">"
+ nickname + "</span>";
} var message_text = "<h2>" + preface_label + "&nbsp;&nbsp;"
+ message + "</h2>";
messageElem.innerHTML = message_text;
messages.appendChild(messageElem);
} //收到消息處理
ws.onmessage = function (e) { var data = JSON.parse(e.data);
nickname = data.nickname;
appendLog(data.type, data.nickname, data.message);
console.log("ID: [%s] = %s", data.id, data.message);
}
ws.onclose = function (e) {
appendLog("Connection closed");
console.log("Connection closed");
} //發送消息
function sendMessage() { var messageField = document.getElementById('message'); if (ws.readyState === WebSocket.OPEN) {
ws.send(messageField.value);
}
messageField.value = '';
messageField.focus();
} //修改名稱
function changName() { var name = $("#name").val(); if (ws.readyState === WebSocket.OPEN) {
ws.send("/nick " + name);
}
}

運行結果:

頁面關閉之後,連接馬上斷開。

這種實時響應的體驗簡直不能太爽,代碼也清爽了,前端體驗也更好,客戶端不用一直發請求,服務端不用等著被輪詢。

小結:上面例子的代碼都很好理解,接下來學習WebSocket協議。

4. 如何用nodejs搭建web伺服器

主要解決兩個問題,1是靜態資源的處理,2是動態資源的路由。

靜態資源在node.js里的意思是不變的,如圖片、前端js、css、html頁面等。

動態資源我們一般指aspx頁面,ashx頁面,asp頁面,jsp頁面,php頁面等,而node.js里其實沒動態資源這一說,它對請求的處理都是由回調方法完成的,在我實現的httserver里,借鑒了ashx的寫法,把處理請求的js文件看作動態資源。

首先實現一個處理靜態資源的函數,其實就是對本地文件的讀取操作,這個方法已滿足了上面說的靜態資源的處理。

5. nodejs整合了前端和後端么

後端上可以用nodejs做伺服器
前端上配合electron可以做本地應用程序

6. nodejs寫伺服器怎麼樣

目前最主流的三個Web伺服器是Apache、Nginx、IIS。

Node.js 提供了 http 模塊,http 模塊主要用於搭建 HTTP 服務端和客戶端,使用 HTTP 伺服器或客戶端功能必須調用 http 模塊,代碼如下:

[javascript]view plain

  • varhttp=require('http');

  • 在通常的伺服器中,數據流通的方式是客戶先通過瀏覽器進行發送請求,伺服器在項目中進行查找,然後進客戶所需要的頁面進行返回,在查找的過程中可能存在兩種情況,就是存在和不存在,當然,我們會做出判斷,下面就是簡單的伺服器實現過程:

    1、編寫伺服器代碼server.js

    [javascript]view plain

  • varhttp=require('http');

  • varfs=require('fs');

  • varurl=require('url');

  • //創建伺服器

  • http.createServer(function(request,response){

  • //解析請求,包括文件名

  • varpathname=url.parse(request.url).pathname;

  • //輸出請求的文件名

  • console.log("Requestfor"+pathname+"received.");

  • //從文件系統中都去請求的文件內容

  • fs.readFile(pathname.substr(1),function(err,data){

  • if(err){

  • console.log(err);

  • //HTTP狀態碼404:NOTFOUND

  • //ContentType:text/plain

  • response.writeHead(404,{'Content-Type':'text/html'});

  • }

  • else{

  • //HTTP狀態碼200:OK

  • //ContentType:text/plain

  • response.writeHead(200,{'Content-Type':'text/html'});

  • //寫會相應內容

  • response.write(data.toString());

  • }

  • //發送響應數據

  • response.end();

  • });

  • }).listen(8081);

  • console.log('Serverrunningathttp://127.0.0.1:8081/');

  • 通過上面代碼,我們就能夠實現伺服器對於文件的查找,下面,我們就進行創建一個html文件,然後通過瀏覽器進行訪問

    2、編寫html文件(index.html),用於瀏覽器進行請求

    [html]view plain

  • <!DOCTYPEhtml>

  • <htmllang="en">

  • <head>

  • <metacharset="UTF-8">

  • <title>index</title>

  • </head>

  • <body>

  • 這是一個用於進行nodejs伺服器測試的html文件,我們能夠通過在瀏覽器上面輸入

  • http://127.0.0.1:8081/WebServer/index.html進行訪問

  • </body>

  • </html>

  • 創建完之後,我們進行測試,現在我的目錄結構是這樣的:


7. node.js是前端還是後端

JavaScript(前端語言)+nodejs(JavaScript的運行環境)=實現伺服器上的開發(後端技術),也就是說js+nodejs實現了後端開發的技術。

8. node.js主要應用是前端還是伺服器端

nodejs是前端語言,但它能使Javascript運行於伺服器端,主要應用還是伺服器端

9. nodejs作為前端伺服器 怎麼解決跨域問題

如果需要復用的代碼僅僅是個別文件、函數、片段等,可以手工修改代碼以適配meteor程序。
需要注意到,node.js的每一個文件都是一個模塊,通過mole.exports和require進行組織,但是在meteor中,每一個文件都是會被自動載入的(具體順序參考meteor文檔),通過全局變數進行跨文件調用;meteor中不能直接載入npm包;meteor框架是同步運行的(非非同步)。