0
点赞
收藏
分享

微信扫一扫

Jenkins 使用 Publish over SSH进行远程访问

星河出山 2024-07-24 阅读 24

Node.js安装与入门案例:

需求:点击按钮,请求本地目录指定文件的内容,并显示在页面上

     

刚入门肯定想着直接写相对路径请求指定路径数据就行了,可是会发现不行。

网页运行在浏览器端,通常后续要发布,如果能直接访问到本地文件,是不是会不安全 !

所以建议将资源都发布到服务器上,通过指定接口向外暴露!!!

掌握Javascript,你将掌握浏览器端(JS)和服务器端(Node.js)

创建一个Node.js项目是一个相对简单的过程,涉及到几个基本步骤。以下是一个基本的指导,帮助你从零开始创建一个Node.js项目:

1. 安装Node.js

首先,确保你的计算机上安装了Node.js。你可以从Node.js官网下载并安装适合你操作系统的版本。安装完成后,你可以在命令行(终端或命令提示符)中运行node -v来检查Node.js是否安装成功,以及安装的版本。

2. 创建一个新的项目文件夹

在你的计算机上选择一个合适的位置,创建一个新的文件夹作为你的Node.js项目目录。你可以使用命令行来创建这个文件夹,例如,在Windows上你可以使用mkdir my-node-project,在Mac或Linux上也是相同的命令。

3. 初始化项目

进入你的项目文件夹,并运行npm init命令。这个命令会引导你通过一系列步骤来设置你的项目,包括项目名称、版本、描述、入口点(通常是index.js)、测试命令、git仓库等。你也可以选择使用npm init -y来快速跳过这些步骤,接受默认设置。

4. 安装项目依赖

虽然你刚开始可能不需要任何外部库,但随着项目的发展,你很可能需要添加一些。你可以使用npm(Node Package Manager)来安装这些依赖。例如,如果你想在项目中使用Express框架,你可以在项目目录下运行npm install express

5. 编写代码

在项目文件夹中创建一个或多个.js文件来编写你的Node.js代码。例如,你可以创建一个名为index.js的文件,并在其中编写你的主逻辑。

6. 运行你的项目

在项目目录下,打开命令行,并运行node index.js(假设你的主文件是index.js)。这将启动你的Node.js应用。

//node.js
const express = require('express');
const fs = require('fs');
const path = require('path');
const app = express();
const PORT = 3000;

// 设置静态文件目录
// 假设你希望从项目根目录下的`public`文件夹提供文件
app.use(express.static('public'));

// 路由处理器,用于直接发送文件(非静态文件服务)
app.get('/file/:filename', (req, res) => {
    const filePath = path.join(__dirname, 'public', req.params.filename);
    console.log(filePath)
    fs.readFile(filePath, 'utf-8',(err, data) => {
        if (err) {
            if (err.code === 'ENOENT') {
                return res.status(404).send('File not found');
            }
            res.status(500).send('Sorry, check with the site admin for error: ' + err.code + ' ..\n');
        }
        // 设置内容类型
        res.type(path.extname(filePath));
        console.log(data)
        res.send(data);
    });
});

// 定义一个路由,当访问/时,返回index.html页面【创建前端路由,保证不跨域】
app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html');
});

app.listen(PORT, () => {
    console.log(`Server is running on http://localhost:${PORT}`);
});
//index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
        <button id="but">发起请求</button>
        <div id="result"></div>
</body>
<script>
    document.getElementById("but").addEventListener("click",getData);
    function getData() {
        const filename="test.glsl";
        const url = `http://localhost:3000/file/${filename}`;
        fetch(url)
            .then(response => {
                if (!response.ok) {
                    throw new Error('Network response was not ok');
                }
                // 假设后端返回的是文本内容,使用text()方法
                return response.text();
                // 如果后端返回的是JSON,则使用json()方法
                // return response.json();
            })
            .then(data => {
                document.getElementById('result').innerText = data;
                console.log(data); // 处理文件内容
            })
            .catch(error => {
                console.error('There has been a problem with your fetch operation:', error);
            });

    }
</script>
</html>
举报

相关推荐

0 条评论