想问个问题,不用框架(比如express),我怎么整合ejs或者jade到Nodejs中?
想问个问题,不用框架(比如express),我怎么整合ejs或者jade到Nodejs中?
就是纯原生的nodejs中怎么使用ejs或jade模板?
当然可以!以下是如何在不使用任何框架的情况下,将 EJS 或 Jade (现在称为 Pug) 整合到 Node.js 中的详细步骤和示例代码。
使用 EJS
首先,你需要安装 EJS 模板引擎:
npm install ejs
然后你可以创建一个简单的服务器来渲染 EJS 模板。以下是一个示例代码:
const http = require('http');
const fs = require('fs');
const path = require('path');
const ejs = require('ejs');
// 创建一个 EJS 模板字符串
const template = `
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><%= title %></title>
</head>
<body>
<h1>Welcome to <%= title %></h1>
<p>This is a simple EJS template example.</p>
</body>
</html>
`;
// 渲染模板
const renderedHtml = ejs.render(template, { title: 'My First EJS Page' });
// 创建 HTTP 服务器
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(renderedHtml);
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
使用 Pug (Jade)
同样地,你需要先安装 Pug 模板引擎:
npm install pug
然后你可以创建一个简单的服务器来渲染 Pug 模板。以下是一个示例代码:
const http = require('http');
const path = require('path');
const pug = require('pug');
// 创建一个 Pug 模板文件
const templatePath = path.join(__dirname, 'template.pug');
// 渲染模板
const renderedHtml = pug.renderFile(templatePath, { title: 'My First Pug Page' });
// 创建 HTTP 服务器
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(renderedHtml);
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
确保你有一个 template.pug
文件在你的项目目录中,内容如下:
doctype html
html(lang="en")
head
meta(charset="UTF-8")
meta(name="viewport" content="width=device-width, initial-scale=1.0")
title #{title}
body
h1 Welcome to #{title}
p This is a simple Pug template example.
通过这些示例代码,你可以看到如何在没有使用任何框架的情况下,将 EJS 或 Pug 整合到 Node.js 应用程序中。希望这对你有帮助!
利用模板的 API 来生成,比如 jade 的:http://jade-lang.com/api/
那我在express之外用jade 直接npm install jade? 然后用jade自身的api来做?
要在纯原生的 Node.js 中整合 EJS 或 Jade(现在称为 Pug)模板引擎,你需要先安装相应的模板引擎库。以下是整合 EJS 和 Pug 到 Node.js 中的示例代码和步骤。
整合 EJS
- 安装 EJS:
npm install ejs
- 示例代码:
const http = require('http');
const fs = require('fs');
const path = require('path');
const ejs = require('ejs');
// 设置静态文件目录
const publicDir = path.join(__dirname, 'public');
http.createServer((req, res) => {
if (req.url === '/') {
// 读取模板文件
fs.readFile(path.join(publicDir, 'index.ejs'), 'utf-8', (err, template) => {
if (err) throw err;
// 渲染模板
const renderedHtml = ejs.render(template, {
title: 'EJS Example',
message: 'Hello from EJS!'
});
// 发送响应
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(renderedHtml);
});
} else {
res.writeHead(404);
res.end();
}
}).listen(3000, () => console.log('Server is running on port 3000'));
整合 Pug (Jade)
- 安装 Pug:
npm install pug
- 示例代码:
const http = require('http');
const fs = require('fs');
const path = require('path');
const pug = require('pug');
// 设置静态文件目录
const publicDir = path.join(__dirname, 'public');
http.createServer((req, res) => {
if (req.url === '/') {
// 读取模板文件
fs.readFile(path.join(publicDir, 'index.pug'), 'utf-8', (err, template) => {
if (err) throw err;
// 渲染模板
const renderedHtml = pug.render(template, {
title: 'Pug Example',
message: 'Hello from Pug!'
});
// 发送响应
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(renderedHtml);
});
} else {
res.writeHead(404);
res.end();
}
}).listen(3000, () => console.log('Server is running on port 3000'));
在这两个示例中,我们创建了一个简单的 HTTP 服务器,并根据请求 URL 渲染相应的模板文件。确保你的模板文件(如 index.ejs
或 index.pug
)位于 public
目录下。这样,你可以通过简单的 Node.js 代码实现模板渲染功能,而不需要依赖任何框架。