自2010年起,我是一名PHP開發人員。 我喜歡PHP,僅僅因爲它很簡單。但我想了解更多關於Node.js.它看起來很有趣,特別是因爲我瞭解JavaScript並且我非常喜歡它。我如何使用PHP在HTML頁面中如何運行Node.js腳本?
有誰知道我如何在HTML頁面中運行Node.js腳本,而不顯示源代碼,就像PHP那樣?那是如何真正起作用的?
我見過很多教程,他們在終端中執行Node.js,但我沒有找到在簡單的HTML頁面中快速運行Node.js的方法。
謝謝! :)
自2010年起,我是一名PHP開發人員。 我喜歡PHP,僅僅因爲它很簡單。但我想了解更多關於Node.js.它看起來很有趣,特別是因爲我瞭解JavaScript並且我非常喜歡它。我如何使用PHP在HTML頁面中如何運行Node.js腳本?
有誰知道我如何在HTML頁面中運行Node.js腳本,而不顯示源代碼,就像PHP那樣?那是如何真正起作用的?
我見過很多教程,他們在終端中執行Node.js,但我沒有找到在簡單的HTML頁面中快速運行Node.js的方法。
謝謝! :)
你似乎混爲一談PHP的兩個不同的特點:
如果您正在使用Node.js的,那麼你通常會:
從Node.js的主頁引用:
一個例子:Web服務器
寫在節點這個簡單的Web服務器的 「Hello World」 爲每個請求的響應 。
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/');
要運行服務器,把代碼到一個文件example.js並執行它 與來自命令行的節點程序:
% node example.js Server running at http://127.0.0.1:1337/
下面是一個簡單的TCP服務器的示例它偵聽端口1337 和回聲不管你把它:
var net = require('net'); var server = net.createServer(function (socket) { socket.write('Echo server\r\n'); socket.pipe(socket); }); server.listen(1337, '127.0.0.1');
好的,明白了。感謝您的幫助。 – alwayslearning 2014-10-20 18:50:11
PHP代碼THA你一直在寫的可能只是PHP的html模板版本(因爲缺乏更好的條款...)
當瀏覽器請求.php頁面時,會調用一個php解釋器來解析php標籤html並用html/text替換它。該結果然後被髮送到瀏覽器。
node.js不能這樣工作。
Node.js比php更詳細,當涉及到這個特定的主題。節點。js不僅僅是一個Web應用程序框架或Web服務器,它還可以用作執行常見任務的可執行程序。
通常,爲了獲得您在node.js中尋找的功能,您可以使用模板框架(例如把手和express)來處理Web服務器和路由。這裏有一個例子:
// this is just an example, it may or may not work, I did not test it.
var express = require('express'),
app = express(),
exphbs = require('express-handlebars'),
hbs,
path = require('path');
// serve all files under the /assets folder as static files
app.use('/assets', express.static(path.join(__dirname, '/assets')));
// handlebar engine config
hbs = exphbs.create({
defaultLayout: 'main'
});
// attach engine and specify view location
app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');
app.set('views', path.join(__dirname, '/views'));
// home page http://domain.com/
app.get('/', function (req, resp) {
resp.render('home', {title: 'Home | Hello World!', text: 'Welcome to my site!'});
});
// start webserver
app.listen(3000);
以上節點的應用程序將創建一個Web服務器偵聽端口3000來響應請求/assets
和/
。
/視圖/佈局:當請求/
,從/views
文件夾中的home.handlebars
視圖將使用main.handlebars
佈局從/views/layouts
下面是將顯示已傳遞在上面創建的/
路線的標題的示例圖來呈現/main.handlebars
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>{{title}}</title>
</head>
<body>
{{{body}}}
</body>
</html>
/views/home.handlebars
<h1>Hello World!</h1>
<p>{{text}}</p>
太棒了!我會詳細瞭解Express。謝謝凱文。 – alwayslearning 2014-10-20 18:48:25
太多的PHP程序員似乎並沒有得到這個。您不要在您的HTML頁面中運行PHP。您的'.php'文件在PHP解釋器中運行,該解釋器輸出一個HTML頁面...輸出的頁面包含_no_ PHP以「在頁面中運行」。 – 2014-10-20 18:16:16
Hi @StephenP。我知道。也許我沒有很好地表達自己,因爲英語不是我的主要語言。不管怎麼說,還是要謝謝你。 – alwayslearning 2014-10-20 18:25:45
@guimadaleno爲了公平起見,你在你的問題中指出你不知道它是如何工作的。 *「有誰知道我如何在我的HTML頁面中運行Node.js腳本,而不顯示源代碼,就像PHP那樣?是這樣它真正起作用的嗎?」*不,那根本不是它的工作原理。 – 2014-10-20 18:29:35