基于Node.js的小站

基于Node.js的小站

其实这个站点断断续续的写了很长的时间,学了不少东西,如:node.jsmongodbbootstrap等等。 其实说实话node.js还是不适合做web站点,其实它更适合做高并发的接口服务 的应用,比如网游服务器等,比起PHP来,还是很多不爽,也许用PHP我能够很快的做出这样一个来吧,一周,两周,也许还不要。 但是无论如何,它是能做WEB程序的。 代码其实托管到github上了,但是写得很乱,就不公布地址了,如果谁想要,留言,留邮箱吧。 程序放到了appfog上面,有兴趣的同学过去看看吧,点这里。 鉴于大家都要源码,可以从这里下载


最近搬到了cloudfoundry上,速度要快些,用了GridFS做图片存储,图片加载有点慢,还写了一 个简单的爬虫,爬了些数据。哈哈,算是告一段落了。
从这里访问:晓知


cloudfoundry也收费了,无家可归了,在BAE申请开通一个应用,传了上去,但是很多问题,也就一直没弄了,哎!晓知


现在BAE的node.js可以正常使用了,地址:xiaozhi


guthub地址: laner


46 回复

基于Node.js的小站

其实这个站点断断续续地写了很长时间,期间学了不少东西,比如 Node.jsMongoDBBootstrap 等等。

虽然 Node.js 在处理高并发请求方面表现优秀,例如网游服务器等,但其实它并不太适合用来构建传统的 Web 站点。相比之下,用 PHP 可能会更快一些,也许一周或两周就能完成。不过无论如何,Node.js 也是可以胜任 Web 开发工作的。

目前,代码已经托管到了 GitHub 上,但由于写得比较乱,就不公开分享地址了。如果有需要的话,可以在评论区留下你的邮箱,我会把代码发给你。

这个项目部署在 AppFog 上,有兴趣的朋友可以去看看:点击访问

鉴于大家对源码的需求,我从这里提供一个下载链接:下载源码


最近,我把站点迁移到了 CloudFoundry 上,速度有所提升,并且使用 GridFS 来存储图片,尽管图片加载速度还有待优化。此外,我还编写了一个简单的爬虫,用于抓取一些数据。这一阶段的工作告一段落了。

你可以通过以下链接访问更新后的站点:晓知


遗憾的是,CloudFoundry 也开始收费了,所以站点又没有了安身之处。后来我在 BAE(百度云)上申请开通了一个应用,上传了站点,但遇到了不少问题,因此一直没有继续维护。

你可以通过以下链接访问:晓知


现在,BAE 的 Node.js 环境已经稳定可用,你可以通过以下链接访问站点:xiaozhi


GitHub 地址:laner


示例代码

假设我们有一个简单的 Node.js 应用,用于显示一个静态页面:

// server.js
const http = require('http');
const fs = require('fs');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
    if (req.url === '/') {
        fs.readFile('index.html', (err, data) => {
            if (err) {
                res.writeHead(500);
                return res.end('Error loading index.html');
            }
            res.writeHead(200, { 'Content-Type': 'text/html' });
            res.end(data);
        });
    } else {
        res.writeHead(404);
        res.end('Not Found');
    }
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});

同时,index.html 文件内容如下:

<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>晓知</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <h1>欢迎来到晓知</h1>
    <p>这是一个基于 Node.js 的简单站点。</p>
</body>
</html>

以上是一个非常基础的 Node.js 应用示例,用于展示如何创建一个简单的 HTTP 服务器并返回一个静态 HTML 页面。


不错 清新格局

给我发下把~yqboynb@163.com 谢谢了~

已发

楼主的站 被eset nod32 拦截了 。。。

域名的问题,cz.cc很多是黄色网站用的

我也有一个和你一样的网站~

tuer.me 你也是写日记的呀~挺好,就是人有点少。我的也开源了。

https://github.com/xiaojue/tuer.me

我的域名不行,都不收录我的。反正也是自己做着玩的。你的网站去看过啊,还是注册用户呢,我的这个不能和你的比啦,我是参考过你的tuer的^_^。

615557811@qq.com 谢谢!能分享到github 上更不错 可惜屏蔽了!

麻烦楼主给copy一份,ozgamel@gmail.com 我也同意楼主的说法,我现在也是用nodejs写api,至于网页还不及php方便,尤其php现在很成熟了,不过我觉得nodejs发展空间很大。

谢谢认同,已发邮件,请查收。

麻烦楼主也发一份给我,膜拜一下。 顺便问一下按node.js开发的微博案例出现 Cannot read property ‘session’ of undefined 的错误是什么原因呢?

785042976@qq.com 挺好,发个谢谢

非常不错,我也一直想用node.js搞个自己网站,可惜没找到免费的支持node.js的空间。也给我发个吧。zhenaikeke@gmail.com 谢谢

appfog就行啊,还有很多都可以

很清馨,两个站,感觉

麻烦楼主共享一个给我,谢谢! email:kangjie1209@163.com

麻烦lz 共享下 1027480591@qq.com

非常好,很喜欢!可以共享吗?522516175@qq.com,感谢!

你是express的么 还是自己写的模板,求交流

iframe啊,老技术了,你登陆上去就是你的电台,不然就是没有登陆的,只能听。

是express,不过好像我稍稍改了点东西。

如果不用express 自己搭的话 有什么经验可以传授么? 如何做模版之类的?

如上,域名问题,cz.cc,黄网多用

感谢分享,我也需要源码来分析学习下 2295777131@qq.com

求源码学习。godluo@qq.com

想学习一下源码,675125417@qq.com,谢谢

求源码学习, 谢谢. myb123@yahoo.cn

求学习。yaoqiqq@hotmail.com

可以考虑放到cloudfoundry上

源码报错 Error: Cannot find module ‘mongoskin/gridfs’,我在项目里 执行npm install mongoskin 加载模块的 ,这么做是不是有问题啊?

lz在哪儿买的虚拟主机,可以用nodejs。

好像新版本的mongoskin的目录结构不同了,你看看再用下。

楼主分享下学习下, 谢了 Email: springlin2012@gmail.com

楼主你上面那个源码下载地址, 中package.json 中的依赖模块没有,node_modules 中 依赖库.txt 的相关模块没有版本号好像会出现兼容问题!

楼主分享学习下,Email:zhuangtim@sina.cn

想学习一下源码,qihuiqiang2008@163.com,谢谢

感谢楼主的分享!

想学习一下源码,375587295@qq.com,谢谢

基于Node.js的小站通常会涉及到后端逻辑处理、数据库操作以及前端展示等多个方面。下面我会提供一个简单的Node.js小站的例子,包括基本的结构和功能。

示例:一个简单的Node.js小站

技术栈

  • Node.js
  • Express(Web框架)
  • MongoDB(数据库)

安装依赖

首先需要安装必要的依赖包:

npm install express mongoose

项目结构

project/
├── app.js
├── package.json
└── routes/
    └── index.js

代码示例

package.json

{
  "name": "xiaozhi",
  "version": "1.0.0",
  "description": "A simple Node.js site",
  "main": "app.js",
  "dependencies": {
    "express": "^4.17.1",
    "mongoose": "^5.10.9"
  }
}

app.js

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

// 连接MongoDB数据库
mongoose.connect('mongodb://localhost/xiaozhi', { useNewUrlParser: true, useUnifiedTopology: true });

const app = express();

// 使用路由
app.use('/', require('./routes/index'));

// 启动服务器
const port = process.env.PORT || 3000;
app.listen(port, () => console.log(`Server running on port ${port}`));

routes/index.js

const express = require('express');
const router = express.Router();
const mongoose = require('mongoose');

// 创建一个简单的Mongoose模型
const Post = mongoose.model('Post', new mongoose.Schema({
  title: String,
  content: String
}));

router.get('/', async (req, res) => {
  const posts = await Post.find({});
  res.render('index', { posts });
});

module.exports = router;

运行项目

确保MongoDB已经运行,然后使用以下命令启动Node.js应用:

node app.js

前端页面

为了简单起见,这里假设前端使用的是EJS模板引擎。你需要安装EJS并配置Express使用它:

npm install ejs

app.js中添加:

app.set('view engine', 'ejs');

创建一个简单的EJS文件views/index.ejs:

<!DOCTYPE html>
<html>
<head>
  <title>XiaoZhi</title>
</head>
<body>
  <h1>Posts</h1>
  <ul>
    <% posts.forEach(post => { %>
      <li><%= post.title %> - <%= post.content %></li>
    <% }) %>
  </ul>
</body>
</html>

以上就是基于Node.js的一个简单小站的实现。你可以根据需求扩展更多的功能和页面。

回到顶部