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


app.post('/addNews', function (req, res) {
  var title = req.body.title;
  var content = req.body.content;
  var pic = req.body.pic;
  var news = new News(title, content, pic)
  news.save(function (err, data) {
    res.send(data);
  })
});

查询下,问题不大,现在要解决的就是附件问题了

上传图片

上传图片功能express本身就支持了,express通过bodyParser解析请求体,然后便可通过他上传文件了,其内部使用了formidable

这里将app.js里面的app.use(express.bodyParser())改为:

复制代码 代码如下:

app.use(express.bodyParser({ keepExtensions: true, uploadDir: './public/news' }));

打开index.js,在前面加一行代码:

复制代码 代码如下:

fs = require('fs'),

修改一下index文件:

复制代码 代码如下:


app.post('/addNews', function (req, res) {
  for (var i in req.files) {
    if (req.files[i] == 0) {
      //同步方式删除一个文件
      fs.unlinkSync(req.files[i].path);
      console.log('success removed an empty file');
    } else {
      var path = './public/news/' + req.files[i].name;
      // 使用同步方式重命名一个文件
      fs.renameSync(req.files[i].path, path);
      console.log('sunccess renamed a file');
    }
  }
//    var title = req.body.title;
//    var content = req.body.content;
//    var pic = req.body.pic;
//    var news = new News(title, content, pic)
//    news.save(function (err, data) {
//      res.send(data);
//    })
});

这个时候选取文件后点击添加新闻,我们的文件就上传上去了

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

这个时候,我只需要将文件名记录在数据库即可,文件目录里面就有图片了

复制代码 代码如下:


app.post('/addNews', function (req, res) {
  var pic = null;
  for (var i in req.files) {
    if (req.files[i] == 0) {
      //同步方式删除一个文件
      fs.unlinkSync(req.files[i].path);
      console.log('success removed an empty file');
    } else {
      var path = './public/news/' + req.files[i].name;
      // 使用同步方式重命名一个文件
      fs.renameSync(req.files[i].path, path);
      console.log('sunccess renamed a file');
    }
    pic = req.files[i].name;
  }
  var title = req.body.title;
  var content = req.body.content;
  var news = new News(title, content, pic)
  news.save(function (err, data) {
    res.send(data);
  })
  res.send('<a href="">请求成功,返回首页</a>');
});

数据库中有数据了,我们目录也有文件了,现在只需要将数据读出来了

PS:放假兄弟们催的凶,要出去喝酒了

读取数据

第二步当然是读取数据,首先是首页的数据读取:

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgswpf.html