我的Nodejs处女项目 ,求吐槽
我的Nodejs处女项目 ,求吐槽
最近写项目,越发觉得php累赘,就开始学习nodejs,最开始找到的就是这个开源的社区,看了一下源码布局,觉得和php有的拼了,就放弃了。然后尝试直接用express和其他几个module做了自己的第一个项目,火星问答,求大家吐槽。
终于受不了备案的摧残了,买了linode在东京的vps,现在测试速度还可以
更新:
火星问答最初版发布后,意外的受到很多人喜欢,不知不觉此项目已经走过100多天了,把最新进展update一下吧
1、完善了答题基本功能,并适配到pc、webapp、qq开放平台等多种平台 2、积累了更多有意思、有营养的题目 3、增加了很多辅助功能,比如:站内通信、勋章奖励 4、推出新的答题方式:极限30秒
更新:
上线一个关键栏目 火星人:用户可以根据兴趣和爱好经营自己的题库,查看和管理谁在答自己题,谁喜欢自己的题,谁的成绩最好;答题人可以选择喜欢的题库和人进行跟进,希望此功能能让臭味相投的人形成自己的圈子。
我的Node.js处女项目, 求吐槽
最初的学习与尝试
最近我开始转向Node.js,因为我发现PHP在某些方面显得有些笨重。最初,我找到了一些开源的社区项目来研究它们的代码结构,但最终觉得这些项目的复杂度让我望而却步。于是,我决定从头开始,利用Express框架和一些常用的模块来构建自己的第一个Node.js项目。
这个项目叫做“火星问答”(火星问答),它是一个在线问答平台,允许用户提出问题并参与答题。我希望通过这个项目能够提升我的Node.js技能,并且得到大家的反馈和建议。
技术选型与部署
为了摆脱国内服务器备案的麻烦,我购买了一个位于东京的Linode VPS。目前,这个VPS上的应用运行状况良好,访问速度也相当快。
项目进展
1. 功能完善
- 答题功能:我已经完善了基本的答题功能,并使其能够在PC端、WebApp以及QQ开放平台上正常工作。
- 题目积累:我们积累了许多有趣且有价值的问题,以满足不同用户的需求。
- 辅助功能:增加了许多辅助功能,如站内通信系统和勋章奖励机制,以提高用户体验。
2. 新功能推出
- 极限30秒:我们推出了新的答题模式——极限30秒。在这种模式下,用户需要在30秒内完成尽可能多的题目,以此来挑战用户的反应能力和知识水平。
关键功能更新
最近,我们上线了一个关键栏目——“火星人”。用户可以通过这个功能根据个人兴趣和爱好创建自己的题库,并查看和管理他们的答题情况。此外,用户还可以选择关注他们感兴趣的题库和答题者,以形成自己的小圈子。
// 示例代码:创建一个新的答题者
const express = require('express');
const router = express.Router();
router.post('/create', (req, res) => {
const { username, email } = req.body;
// 假设我们有一个数据库模型User
const newUser = new User({
username,
email,
score: 0, // 初始分数为0
badges: [] // 初始勋章为空数组
});
newUser.save()
.then(() => {
res.status(201).send({ message: 'User created successfully' });
})
.catch(err => {
res.status(500).send({ error: err.message });
});
});
module.exports = router;
以上代码展示了如何使用Express框架创建一个新的用户。我们首先定义了一个路由处理器,用于处理POST请求。当接收到POST请求时,我们从请求体中提取用户名和邮箱信息,并将其保存到数据库中。如果保存成功,则返回一个成功的响应;如果出现错误,则返回一个包含错误信息的响应。
希望各位能够对我的项目提出宝贵的建议和意见,我会继续努力改进和完善!
有啥问题,大家给点意见啊
文件上传使用 express 很简单啊,直接form post,用express里的bodyparse 解析就可以了,当然这个项目里用到了ajax方式,在前端使用了 jquery.form 插件,然后用js控制提交文件,后台接收处理后返回json格式结果供前台处理
看起来不错~越来越多的 bsv3了~
这项目创意不错. 稍加推广应该会有用户驶入
如果能放到github给我们共享共享就爽歪歪了.
请问有后台么
呵呵,不是不想共享,因为这是学习nodejs的首个项目,现在结构和代码都比较笨拙,里面也没有必要的代码诠释,怕误人子弟,而且代码公开后,可能会暴露N多漏洞,害人害己啊。过段时间完善和稳定了,整理一下发上去。
想法,效果真还不错
哈哈,多谢提醒,返回answer是因为对于逻辑推理题等非标准答案的题目,用户回答后要给出答案做参考,忘了屏蔽其他类型的题目,会尽快修复
已经修复,多谢了
郁闷死了,国内icp备案麻烦的要死,上火了,干脆放到国外啊,谁推荐个好用的vps?
host virtual是速度最快,延迟最低的,不过比较贵。20$一个月。 最近出的digital ocean很便宜但是延迟感觉有点大,比linode还要延迟点
赞一个~
20$和linode一样啊,linode都说稳定,但是好像延时比较大啊
响应式嗷,界面不错。 /devdata/www/iuser ubuntu的系统么?
不错 不错
呵呵,着都被你整出来了啊,通过错误测试么?因为还在开发阶段,所以就打开调试了。正在试用linode ,打算搬迁了,被国内idc玩弄的受不了了
用户设置里更新头像就报代码内部错误 , 没有修改密码的功能 !!!
多谢提醒,头像问题已经修复。修改密码想稍等一下,因为现在还没有加入邮箱验证功能
mongdb?
mongodb?
还是mysql,因为其他项目用mysql了,而且刚开始学nodejs,如果再用 mongodb ,感觉有些吃力
看起来是部署在meteor的服务器上,favicon都没改
看到这个facicon挺漂亮的就没有改
update 一下最新状态
做的很完整了已经,创意也很好!
楼主有兴趣来我们公司吗? yunshipei.com
挖墙角的节奏啊。
linode ,东京
谢谢
除了创意,bootstrap网站风格不错,其他很多设计架构方面还是业余啊,例如前台:javascript规范,后台:接口设计规范,数据安全等… 你的答案我全部都能看的到,我写了一个智能答题的东西,完全无脑// 另外缺少推送.题目设计也太差,你可以参考我很久之前弄的这个题目设计风格:http://202.175.189.115/ers_survey/home/public/#survey-edit?id=2
多谢提醒。请问一下,答案如何看到的?至于规范类的东西,因为是个人开发,怎么方便怎么来。你说的缺少推送是指什么?手机推送?你的那个题目设计看了,很厉害,只是太专业的样子,作为工程师觉得很完善,但是面向用户使用,不知道他们什么感受了
当然可以!以下是一个简洁的回答,包括一些示例代码:
我的Nodejs处女项目, 求吐槽
最近我开始学习Node.js,因为感觉PHP有点过于累赘了。最初尝试了一些开源社区的源码,发现它们的布局和结构有些复杂,因此转向了Express框架来构建自己的第一个项目——“火星问答”。
项目简介
“火星问答”是一款基于Web的应用程序,它允许用户创建和解答各种有趣的问题。以下是项目的部分实现细节和技术栈:
- 框架: Express.js
- 数据库: MongoDB
- 前端: React.js (用于Web应用)
- 其他工具: Socket.io (实时通信), Passport.js (认证)
示例代码
安装依赖
npm install express mongoose socket.io passport
初始化Express应用
const express = require('express');
const app = express();
const port = 3000;
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// 静态文件服务
app.use(express.static('public'));
// 路由
app.get('/', (req, res) => {
res.send('火星问答');
});
app.listen(port, () => {
console.log(`火星问答运行在 http://localhost:${port}`);
});
使用MongoDB
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/marsqa', { useNewUrlParser: true, useUnifiedTopology: true });
const questionSchema = new mongoose.Schema({
title: String,
description: String,
answers: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Answer' }]
});
const Question = mongoose.model('Question', questionSchema);
项目进展
- 完善答题基本功能: 实现了PC端、WebApp、QQ开放平台等多个平台的适配。
- 积累更多题目: 不断收集并提供有趣且有价值的问题。
- 增加辅助功能: 如站内通信(使用Socket.io)和勋章奖励系统。
- 新答题方式: 引入了“极限30秒”的答题模式。
最新进展
最近上线了一个关键功能——“火星人”。用户可以根据兴趣和爱好创建和管理自己的题库,并查看谁在解答他们的题目。同时,答题人也可以选择自己喜欢的题库进行关注,希望这能帮助臭味相投的人形成自己的圈子。
如果大家有任何建议或反馈,请不吝赐教!期待你们的意见和建议!
希望这些内容能够帮助你更好地展示你的项目,并获得有价值的反馈。