学习Nodejs两周的习作:《哥德的理念》

学习Nodejs两周的习作:《哥德的理念》

没什么技术含量,全凭自己喜好做的,欢迎拍砖:http://gddln.com/

25 回复

学习Node.js两周的习作:《哥德的理念》

经过两周的学习,我完成了一个简单的Web应用——《哥德的理念》。这个项目虽然没有太多的技术深度,但完全是我根据个人兴趣开发的。项目的核心功能是展示一些关于哥德的理念,并提供一些基本的交互功能。

技术栈

  • Node.js: 用于后端逻辑处理。
  • Express.js: 一个简洁而灵活的Node.js Web应用框架。
  • EJS: 一种嵌入式JavaScript模板引擎,用于生成HTML页面。
  • MongoDB: 作为数据存储,用于保存理念相关的数据。

项目结构

gddln/
├── node_modules/
├── public/
│   ├── css/
│   ├── js/
│   └── images/
├── views/
│   ├── index.ejs
│   └── about.ejs
├── app.js
└── package.json

主要文件介绍

  1. app.js 这是项目的入口文件,定义了服务器的基本配置和路由。

    const express = require('express');
    const bodyParser = require('body-parser');
    const MongoClient = require('mongodb').MongoClient;
    const app = express();
    const PORT = process.env.PORT || 3000;
    
    // 设置视图引擎为EJS
    app.set('view engine', 'ejs');
    
    // 使用body-parser中间件解析请求体
    app.use(bodyParser.urlencoded({ extended: true }));
    app.use(bodyParser.json());
    
    // 静态资源目录
    app.use(express.static('public'));
    
    // MongoDB连接字符串
    const url = 'mongodb://localhost:27017';
    const dbName = 'gddln';
    
    // 连接数据库
    MongoClient.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }, (err, client) => {
      if (err) {
        console.error(err);
        return;
      }
      console.log("Connected successfully to server");
      const db = client.db(dbName);
    
      // 路由定义
      app.get('/', (req, res) => {
        db.collection('ideas').find().toArray((err, ideas) => {
          if (err) throw err;
          res.render('index', { ideas });
        });
      });
    
      app.listen(PORT, () => {
        console.log(`Server running on port ${PORT}`);
      });
    });
    
  2. views/index.ejs 这个文件定义了首页的HTML结构和样式。

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>哥德的理念</title>
      <link rel="stylesheet" href="/css/style.css">
    </head>
    <body>
      <h1>哥德的理念</h1>
      <ul>
        <% ideas.forEach(idea => { %>
          <li><%= idea.title %> - <%= idea.content %></li>
        <% }) %>
      </ul>
      <script src="/js/app.js"></script>
    </body>
    </html>
    
  3. package.json 项目依赖的包管理文件。

    {
      "name": "gddln",
      "version": "1.0.0",
      "description": "哥德的理念网站",
      "main": "app.js",
      "scripts": {
        "start": "node app.js"
      },
      "dependencies": {
        "body-parser": "^1.19.1",
        "ejs": "^3.1.6",
        "express": "^4.17.1",
        "mongodb": "^3.6.4"
      }
    }
    

总结

通过两周的学习,我不仅掌握了Node.js的基础知识,还学会了如何使用Express.js、EJS和MongoDB来构建一个简单的Web应用。尽管还有很多需要提升的地方,但我对前端与后端的结合有了更深的理解。希望这个小项目能对你有所帮助,也欢迎大家提出宝贵的意见和建议!

访问地址:http://gddln.com/


不错,挺文艺范儿的一个网站

嗯 我也觉得不错,很清爽,不过好像功能少了点。

谢谢喜欢的朋友!功能方面后面可以慢慢加。。。 不过,俺还没解决个问题。现在用的mongous库https://github.com/amark/mongous作为与连接mongodb的中间层,但这个库貌似没法按时间逆序取数据(还是我没看明白?),这样导致我的网站看到的数据都没有变化。谁能帮我?

不错, 我学node也两周了, 屁都木有放出来一个

加油,呵呵,我是从ruby转过来的。不过,ruby也是初学。之前用ruby做过个网站:http://xmzdm.com/

可以通过域名访问“歌德的理念”了:http://gddln.com/

这个社区用的是mongoose, 是支持排序的, 不行就换个驱动吧.

不错啊,我也在看node,不过是做前端的,后台的知识概念,一个头2个大

不错,我喜欢这种风格~

谢谢,哈哈。。

很小清新,有新媒体杂志范儿

的确很小清新,不错,期待楼主今后的作品

不错

不错,就是换文章的时候最好不要换歌

是我喜欢的风格,清新淡雅

音乐盒怎么弄的啊?

音乐盒怎么弄的啊?

目测是拉api

表示网站打不开

我也打不开

服务器有时会出问题,不过大多数时候是好的。

域名解析问题,可直接IP访问:http://184.82.79.30/

不错的啊!

好的,理解了你的需求。假设你正在做一个简单的项目,基于Node.js并使用Express框架来展示《哥德的理念》,我们可以实现一个非常基础的应用程序,它可以从一个数组中获取数据,并以简单的HTML页面的形式显示这些数据。

首先,确保你已经安装了Node.js。然后,在项目的根目录下初始化一个新的Node.js应用:

npm init -y

接下来,安装Express库:

npm install express

现在,让我们创建一个基本的应用程序,它从一个数组中获取《哥德的理念》的数据,并将这些数据作为HTML列表项返回。

示例代码

  1. 创建server.js文件
const express = require('express');
const app = express();
const port = 3000;

// 定义哥德理念数组
const gddThoughts = [
    "思维是世界的唯一主宰。",
    "只有行动能克服恐惧。",
    "艺术是解放人类灵魂的力量。",
];

// 设置路由,用于获取哥德理念
app.get('/', (req, res) => {
    // 创建HTML列表
    let html = '<html><body>';
    html += '<h1>哥德的理念</h1>';
    html += '<ul>';

    // 遍历哥德理念数组,生成列表项
    for (let thought of gddThoughts) {
        html += `<li>${thought}</li>`;
    }

    html += '</ul>';
    html += '</body></html>';

    // 返回HTML内容
    res.send(html);
});

// 启动服务器
app.listen(port, () => {
    console.log(`Server running at http://localhost:${port}`);
});

这段代码做了以下几件事:

  • 引入Express模块。
  • 定义了一个包含哥德理念的数组。
  • 创建了一个路由,当用户访问网站的根路径时,会返回包含哥德理念的HTML页面。
  • 最后,启动一个监听在3000端口的服务器。

现在,你可以通过运行node server.js来启动服务器,然后在浏览器中访问http://localhost:3000,你会看到一个展示哥德理念的简单网页。

这只是一个非常基础的例子,但可以为你提供一些起点。随着经验的增加,你可以逐步添加更多功能,如数据库集成、更复杂的前端界面等。

回到顶部