想用nodejs开发一个图片分享网站,功能基本如下: 1.用户注册、登录、注册时能进行邮箱或手机验证绑定; 2.用户可以上传图片,上传图片时并配有文字说明,所有上传的图片都在首页显示; 3.用户可以在首页对上传的图片发表评论,点赞,转发,可以关闭不喜欢的图片; 4.用户可以关注其他用户而不需要得到许可; 5.首页显示的图片按更新时间进行排序,最新发表的在最上面,如果是关注的人发表的图片则优先显示; 6.还有一个热门页面,里面的图片按照评论的数量和点赞的数量从多到少进行排序; 功能大体这样,请问该如何开发,谁能给个思路,小弟谢过了,如果能有愿意一起开发的那就更好了。
帮楼主理一下好了,以MVC的模式。
M: * 用户数据 * 图片数据
C: * 注册 * 登录 * 上传 * 评论 * 点赞 * 转发 * 关闭 * 关注 * 排序
V: * 用户信息管理 * 用户图片管理 * 图片展示(可包含图片详细信息) * 热门图片
大概理了一下,楼主可以自己做个todolist,然后一个一个实现吧,我最近准备离职,虽然想帮忙,但是没有时间。
@think2011 对了,请问你知道为什么我在webstorm中写了一个nodejs程序,添加了一个index.html文件,这个文件如果
用webstorm能打开正常显示,但是运行nodejs后,打开127.0.0.1:3000后就显示一片空白,检查好几遍都找不着原因,下面是代码
Server.js代码
var http=require(‘http’);
var fs = require(‘fs’);
var mime = require(‘mime’);
var path =require(‘path’);
var cache={};
//返回404页面
function send404(res){
res.writeHead(404,{’Content-Type’:’text/plain’});
res.write(‘Error 404 :页面丢了’);
res.end();
}
//提供文件数据服务,这个函数先写出正确的HTTP头,然后发送文件的内容。
function sendFile(res,filePath,fileContents){
res.writeHead(200,{’Content-Type’:mime.lookup(path.basename(filePath))});
res.end();
}
/提供静态文件服务,聊天程序就要把静态文件缓存到内存中,只有第一次访问的时候才会从文件系统中
读取。下一个辅助函数会确定文件是否缓存了,如果是,就返回它。如果文件还没被缓存,它会
从硬盘中读取并返回它。如果文件不存在,则返回一个HTTP 404错误作为响应。/
function serveStatic(res,cache,absPath){
//检查文件是否缓存在内存
if(cache[absPath]){
sendFile(res,absPath,cache[absPath]);
}
else{
//检查文件是否存在
fs.exists(absPath,function(exists){
//如果存在,从硬盘读取
if(exists){
fs.readFile(absPath,function(err,data){
if(err){
send404(res);
}
else{
cache[absPath]=data;
sendFile(res,absPath,data);
}
});
}
else{
send404(res);
}
});
}
}
//创建Http服务器逻辑
var server = http.createServer(function(req,res){
var filePath = null;
if(req.url==’/’){
filePath=’public/index.html’;
}
else{
filePath=’public’+req.url;
}
var absPath=’./’+filePath;
serveStatic(res,cache,absPath);
}).listen(8000,function(){
console.log(‘服务器成功启动!!’);
});
index.html代码
<!DOCTYPE html> <html> <head > <meta charset="UTF-8"> <title>Chat</title> <link rel="stylesheet" href="stylesheets/style.css"/> </head> <body>- Change nickname:
/nick[username]
- Join/create room:
/join[room name]
var http = require("http");
var fs = require("fs");
var mime = require("mime");
var path = require("path");
var cache = {};
//返回404页面
function send404(res) {
res.writeHead(404, {
"Content - Type": "text / plain"
});
res.write("Error 404: 页面丢了");
res.end();
}
//提供文件数据服务,这个函数先写出正确的HTTP头,然后发送文件的内容。
function sendFile(res, filePath, fileContents) {
res.writeHead(200, {
"Content-Type": mime.lookup(path.basename(filePath))
});
/**
* 楼主!你忘记输出了!!
*/
res.write(fileContents);
res.end();
}
function serveStatic(res, cache, absPath) {
//检查文件是否缓存在内存
if (cache[absPath]) {
sendFile(res, absPath, cache[absPath]);
} else {
//检查文件是否存在
fs.exists(absPath, function(exists) {
//如果存在,从硬盘读取
if (exists) {
fs.readFile(absPath, function(err, data) {
if (err) {
send404(res);
} else {
cache[absPath] = data;
sendFile(res, absPath, data);
}
});
} else {
send404(res);
}
});
}
}
//创建Http服务器逻辑
var server = http.createServer(function(req, res) {
var filePath = null;
if (req.url == "/") {
filePath = "public/index.html";
} else {
filePath = "public" + req.url;
}
var absPath = "./" + filePath;
serveStatic(res, cache, absPath);
}).listen(3000, function() {
console.log("服务器成功启动!!");
});