【新手求助】怎样在Nodejs中直接只用html进行开发

【新手求助】怎样在Nodejs中直接只用html进行开发

本人刚学nodejs的,请问一下nodejs不能直接用html吗?一定要用jade 、ejs等模板引擎吗? 这些模板引擎的语法用起来很别扭,没有html直观。尤其在做一些复杂界面的时候,感觉效率比较低,

以上只是本人刚接触的感受,勿喷。 如果有一些使用技巧,请大大们指点一下,在此谢过…

4 回复

当然可以!在Node.js中,你可以直接使用HTML文件来进行开发,而不需要依赖模板引擎如Jade或EJS。以下是一个简单的示例来展示如何实现这一点。

示例代码

首先,你需要安装express库,这是一个流行的Node.js框架,用于简化Web应用的开发。

npm install express

然后,创建一个简单的Express应用,它将静态HTML文件提供给客户端。

文件结构

myapp/
├── index.html
└── server.js

index.html

这是你的HTML文件,可以直接编写HTML代码。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>My Node.js App</title>
</head>
<body>
    <h1>Welcome to My Node.js App!</h1>
    <p>This is a simple HTML page served by Node.js.</p>
</body>
</html>

server.js

这是你的服务器端代码,使用Express来提供静态文件。

const express = require('express');
const path = require('path');

const app = express();
const port = 3000;

// Serve static files from the "public" directory
app.use(express.static(path.join(__dirname, 'public')));

// Route for the root URL
app.get('/', (req, res) => {
    res.sendFile(path.join(__dirname, 'index.html'));
});

app.listen(port, () => {
    console.log(`Server is running on http://localhost:${port}`);
});

运行应用

确保你已经在项目根目录下创建了上述文件,然后运行服务器:

node server.js

现在打开浏览器,访问http://localhost:3000,你应该能看到你编写的HTML页面。

解释

  1. Express: 我们使用Express来简化HTTP服务器的设置。
  2. 静态文件服务: express.static中间件用来提供静态文件(如HTML、CSS、JavaScript)。
  3. 路由: / 路由指向 index.html 文件,使得当用户访问根URL时,会返回这个HTML文件。

这种方式避免了使用模板引擎,让你可以直接使用纯HTML进行开发。希望这对你有所帮助!


你在ejs或是jade中直接使用html,也是可以识别的吧

ejs没试过,不清楚。 jade试过了,不行,编译报错。

block context div(class=‘easyui-layout’ style=‘height:1000px;width:1200px;background:#A9FACD;’) div(region=‘north’ border=‘false’ style=‘height:60px;background:#B3DFDA;’) north region div(region=‘west’ split=‘true’ title=‘West’ style=‘width:150px;padding:10px;’) west content div(region=‘east’ split=‘true’ title=‘East’ style=‘width:100px;padding:10px;’) east region div(region=‘south’ border=‘false’ style=‘height:50px;background:#A9FACD;padding:10px;’) south region div(region=‘center’ title=‘Main Title’)

像这样的布局,看起来很不直观,我想直接用html来做,但加入html代码后,编译报错了

在Node.js中,你可以直接使用HTML文件进行开发,而不需要使用模板引擎如Jade或EJS。你可以通过以下步骤来实现这一点:

  1. 创建一个基本的HTTP服务器,用于响应客户端的请求。
  2. 当用户访问你的应用时,服务器返回HTML文件。

下面是一个简单的示例代码,演示如何实现这一点:

const http = require('http');
const fs = require('fs');

const server = http.createServer((req, res) => {
    if (req.url === '/') {
        // 读取并发送HTML文件
        fs.readFile('./index.html', 'utf-8', (err, data) => {
            if (err) {
                res.writeHead(500);
                res.end('Internal Server Error');
            } else {
                res.writeHead(200, { 'Content-Type': 'text/html' });
                res.end(data);
            }
        });
    } else {
        res.writeHead(404);
        res.end('Not Found');
    }
});

server.listen(3000, () => {
    console.log('Server is running on port 3000');
});

在这个示例中,我们创建了一个HTTP服务器,并监听端口3000。当用户访问根路径(/)时,服务器会读取名为index.html的文件,并将其作为响应返回给浏览器。如果用户访问其他路径,则返回404 Not Found错误。

你可以将上面的代码保存为server.js文件,并确保在同一目录下有一个index.html文件。这样,当你运行node server.js时,服务器将启动并开始监听端口3000。

这种方式可以让开发者更直观地编写HTML代码,而无需学习额外的模板引擎语法。

回到顶部