基于Node.js的小站
基于Node.js的小站
其实这个站点断断续续的写了很长的时间,学了不少东西,如:node.js、mongodb、bootstrap等等。 其实说实话node.js还是不适合做web站点,其实它更适合做高并发的接口服务 的应用,比如网游服务器等,比起PHP来,还是很多不爽,也许用PHP我能够很快的做出这样一个来吧,一周,两周,也许还不要。 但是无论如何,它是能做WEB程序的。 代码其实托管到github上了,但是写得很乱,就不公布地址了,如果谁想要,留言,留邮箱吧。 程序放到了appfog上面,有兴趣的同学过去看看吧,点这里。 鉴于大家都要源码,可以从这里下载。
最近搬到了cloudfoundry上,速度要快些,用了GridFS做图片存储,图片加载有点慢,还写了一 个简单的爬虫,爬了些数据。哈哈,算是告一段落了。
从这里访问:晓知。
cloudfoundry也收费了,无家可归了,在BAE申请开通一个应用,传了上去,但是很多问题,也就一直没弄了,哎!晓知。
现在BAE的node.js可以正常使用了,地址:xiaozhi
guthub地址: laner
基于Node.js的小站
其实这个站点断断续续地写了很长时间,期间学了不少东西,比如 Node.js、MongoDB 和 Bootstrap 等等。
虽然 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的^_^。
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 自己搭的话 有什么经验可以传授么? 如何做模版之类的?
共享下 harry@ican.hk
如上,域名问题,cz.cc,黄网多用
感谢分享,我也需要源码来分析学习下 2295777131@qq.com
求源码学习。godluo@qq.com
想学习一下源码,675125417@qq.com,谢谢
求学习。yaoqiqq@hotmail.com
源码报错 Error: Cannot find module ‘mongoskin/gridfs’,我在项目里 执行npm install mongoskin 加载模块的 ,这么做是不是有问题啊?
lz在哪儿买的虚拟主机,可以用nodejs。
用的 appfog.com
好像新版本的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的一个简单小站的实现。你可以根据需求扩展更多的功能和页面。