源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

nodejs教程之制作一个简单的文章发布系统

  • 时间:2021-11-13 02:44 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:nodejs教程之制作一个简单的文章发布系统
[b]前言[/b] 我们今天就来做一个简单的新闻发布系统,系统第一阶段不需要太难,主要有以下功能 ① 新闻类型管理 ② 新闻管理(具有图片上传功能) ③ 新闻浏览 功能虽然不多,但是也涵盖很多基本操作了,程序不过增删查改嘛,外加上传附件,够了。于是开始我们今天的学习吧 [b]准备工作[/b] 根据昨天的折腾后,我们已经有了nodeJS与mongoDB环境了,现在直接新建工程文件与数据库文件即可 第一步,打开命令符切换到D盘后输入
[url=/stylesheets/style.css]     <script src="javascripts/zepto.js" type="text/javascript"></script> </head> <body>     <h1>         <%= title %></h1>     <div>         标题:<input type="text" id="title" />     </div>     <div>         内容:<textarea id="content"></textarea>     </div>     <div>         <input type="button" type="button" id="ok" value="添加新闻" />     </div>     <script type="text/javascript">         $(document).ready(function () {             $('#ok').click(function () {                 var param = {};                 param.title = $('#title').val();                 param.content = $('#content').val();                 $.post('/addNews', param, function () {                     console.log('添加成功');                 });             });         });     </script> </body> </html>
[img]http://files.jb51.net/file_images/article/201411/2014112114583352.png[/img] [img]http://files.jb51.net/file_images/article/201411/2014112114583353.png[/img] 虽然现在还没有请求响应程序,所以数据并不会被处理,另外我们这里的附件也没有(现在附件只允许一个好了),于是再修改下代码,加入图片: PS:比较麻烦的是图片经过ajax处理有点麻烦,所以我们这里乖乖的换回form操作算了,不然又要搞多久...... 这个样子就不需要过多的考虑附件问题,先暂时如此吧,现在先处理请求程序,这里先在public里面新建news文件夹用于存储其图片 [b]model[/b] 在models文件夹新增news.js文件,为其构建实体,并赋予新增查询相关操作:
[url=./] });
[img]http://files.jb51.net/file_images/article/201411/2014112114583358.png[/img] 数据库中有数据了,我们目录也有文件了,现在只需要将数据读出来了 PS:放假兄弟们催的凶,要出去喝酒了 [b]读取数据 [/b] 第二步当然是读取数据,首先是首页的数据读取:
var mongodb = require('./db'); function News(title, content, pic) {   this.title = title;   this.content = content;   this.pic = pic;//保存存储路径 }; module.exports = News; //存储数据 News.prototype = {   save: function (callback) {     var date = new Date();     //数据存储对象     var news = {       title: this.title,       content: this.content,       pic: this.pic, //图片处理最后来说,现在先乱存       date: date     };     //打开数据连接,打开就是一个回调......     mongodb.open(function (err, db) {       //错误就退出       if (err) {         return callback(err);       }       //打开news集合       db.collection('news', function (err, collection) {         if (err) {           mongodb.close();           return callback(err);         }         //写入集合(写入数据库)         collection.insert(news, { safe: true }, function (err) {           return callback(err);         });         callback(null); //err为null       });     });   } }; //读取文章及其相关信息 News.get = function (id, callback) {   //打开数据库   mongodb.open(function (err, db) {     if (err) {       return callback(err);     }     db.collection('news', function (err, collection) {       if (err) {         mongodb.close();         return callback(err);       }       var query = {};       if (id) {         query.id = id;       }       //根据 query 对象查询文章       collection.find(query).sort({         date: -1       }).toArray(function (err, data) {         mongodb.close();         if (err) {           return callback(err); //失败!返回 err         }         callback(null, data); //成功!以数组形式返回查询的结果       });     });   }); }; news.js
[u]复制代码[/u] 代码如下:
<!DOCTYPE html> <html> <head>     <title>         <%= title %></title>     <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body>     <h1>         <%= title %></h1>     <ul>         <%for(var k in data) { %>         <li>             <div>                标题: <%=data[k].title %></div>             <div>               内容:  <%=data[k].content%></div>               <div>               附件:<img src="news/<%= data[k].pic%>" /></div>               </div>               <div>               <a href="/delete?id=<%=data[k] %>">删除</a>               </div>               <hr/>         </li>         <%} %>     </ul> </body> </html>
[img]http://files.jb51.net/file_images/article/201411/2014112114583359.png[/img] [b]结语[/b] 好了,文章发布系统的制作就先到这里了,以后我们再慢慢增加功能,慢慢做美化。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部