如何在我的HTML页面中运行Node.js脚本,就像我在PHP中一样
How do I run a Node.js script in my HTML page, as I do with PHP?
我从2010年开始就是PHP开发人员。我喜欢PHP,只是因为它很简单。但我想了解更多关于 Node.js 的信息。它看起来很有趣,特别是因为我知道JavaScript,而且我是它的忠实粉丝。
有谁知道如何在我的 HTML 页面中运行 Node.js 脚本,而不像 PHP 那样显示源代码?它真的是这样工作的吗?
我看过很多教程,他们在终端中执行 Node.js,但我没有找到在简单的 HTML 页面中运行 Node.js 的快速方法。
谢谢!:)
你似乎混淆了PHP的两个不同功能:
- 许多Web服务器可以配置为通过PHP解释器运行PHP程序,并将结果提供给浏览器。 PHP
- 被设计为一种带有铃铛的模板语言,因此 PHP 代码嵌入在模板中。
如果您使用的是 Node.js那么您通常会:
- 在 Node.js 中编写 Web 服务器(尽管您可以为其配置前端代理(。在 Node.js 主页上有一个例子,但也有各种框架,例如 express,它们为您完成了很多繁重的工作。
- 将模板代码与程序代码分开。Node 有许多模板模块可供它使用。
引自Node.js主页:
示例:网络服务器
这个用 Node 编写的简单 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/');
要运行服务器,请将代码放入文件示例中.js然后执行它 使用命令行中的节点程序:
% node example.js Server running at http://127.0.0.1:1337/
下面是侦听端口 1337 的简单 TCP 服务器的示例 并回显您发送的任何内容:
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');
你一直在写的 php 代码可能只是 php 的 html 模板版本(因为缺乏更好的术语......
当浏览器中请求.php页面时,将调用一个php解释器,该解释器解析html中的php标签并将其替换为html/text。然后将该结果发送到浏览器。
node.js 不是这样工作的。
节点.js 更多....当涉及到这个特定主题时,比PHP更详细。node.js 不仅仅是一个 Web 应用程序框架或 Web 服务器,它还可以用作运行常见任务的可执行文件。
通常,要获得您在 node.js 中寻找的功能,您将使用模板框架(如 Handlebar 和 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);
上述节点应用程序将创建一个侦听端口 3000 的 Web 服务器,该服务器响应对/assets
和/
的请求。请求/
时,将使用/views/layouts
中的main.handlebars
布局呈现/views
文件夹中的home.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>
- 在SVG地图上添加水的渐变,就像在谷歌地图(PHP/JS)中一样
- 我如何使用下划线模板(<%%>),就像我在PHP中使用它一样(lt;?PHP?>
- 如何在 JavaScript 中将字符串更改为变量,就像 PHP 中的 $$ 一样
- JavaScript 内联如果变量像 PHP 一样赋值
- 二维数组,就像在 PHP 中一样
- 像PHP一样使用json数组“水合”Javascript对象实例
- 使用 JS 插入代码,就像 php 中的 echo 一样
- 多维数组与JavaScript就像php一样
- 像PHP一样的JS设置类型
- PHP call_user_func像 Javascript 调用一样绑定这个 Arg
- 在 PHP 中使用每个,就像 jquery 一样
- 使用 JavaScript 获取 IP 地址是否与通过 PHP 获取IP地址一样准确
- 如何像在PHP中一样创建Javascript 2-d数组
- JavaScript正则表达式并像PHP preg_replace一样替换
- 有没有像PHP一样进行Rijndael 256位加密的JavaScript库
- PHP智能||(OR)运算符,就像Javascript中一样
- Javascript和PHP一样有打开和关闭标签吗?
- Javascript是否像PHP一样支持短三进制(而不是的变体)?
- 像PHP一样的Node.js源代码保护
- 在JS中像PHP一样设置动态值为Array