• xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!


    Node.js & RESTful API

    1. stream

    2. buffer


    demos

    https://developer.github.com/v3/

    //jshint esversion:6
    
    const express = require("express");
    const bodyParser = require("body-parser");
    const ejs = require("ejs");
    const mongoose = require('mongoose');
    
    const app = express();
    
    app.set('view engine', 'ejs');
    
    app.use(bodyParser.urlencoded({
      extended: true
    }));
    app.use(express.static("public"));
    
    mongoose.connect("mongodb://localhost:27017/wikiDB", {
      useNewUrlParser: true
    });
    
    const articleSchema = {
      title: String,
      content: String
    };
    
    const Article = mongoose.model("Article", articleSchema);
    
    /////////////////////////All Articles///////////////////////////////////
    
    app.route("/articles")
    
    
    .get(function(req, res){
      Article.find(function(err, articles){
        if (articles) {
          const jsonArticles = JSON.stringify(articles);
          res.send(jsonArticles);
        } else {
          res.send("No articles currently in wikiDB.");
        }
      });
    })
    
    .post(function(req, res){
      const newArticle = Article({
        title: req.body.title,
        content: req.body.content
      });
    
      newArticle.save(function(err){
        if (!err){
          res.send("Successfully added a new article.");
        } else {
          res.send(err);
        }
      });
    })
    
    .delete(function(req, res){
    
      Article.deleteMany(function(err){
        if (!err){
          res.send("Successfully deleted all the articles in wikiDB.");
        } else {
          res.send(err);
        }
      });
    
    });
    
    
    /////////////////////////Individual Articles///////////////////////////////////
    
    app.route("/articles/:articleTitle")
    
    .get(function(req, res){
      const articleTitle = req.params.articleTitle;
      Article.findOne({title: articleTitle}, function(err, article){
        if (article){
          const jsonArticle = JSON.stringify(article);
          res.send(jsonArticle);
        } else {
          res.send("No article with that title found.");
        }
      });
    })
    
    .patch(function(req, res){
      const articleTitle = req.params.articleTitle;
      Article.update(
        {title: articleTitle},
        {content: req.body.newContent},
        function(err){
          if (!err){
            res.send("Successfully updated selected article.");
          } else {
            res.send(err);
          }
        });
    })
    
    .put(function(req, res){
    
      const articleTitle = req.params.articleTitle;
    
      Article.update(
        {title: articleTitle},
        {content: req.body.newContent},
        {overwrite: true},
        function(err){
          if (!err){
            res.send("Successfully updated the content of the selected article.");
          } else {
            res.send(err);
          }
        });
    })
    
    
    .delete(function(req, res){
      const articleTitle = req.params.articleTitle;
      LostPet.findOneAndDelete({title: articleTitle}, function(err){
        if (!err){
          res.send("Successfully deleted selected article.");
        } else {
          res.send(err);
        }
      });
    });
    
    
    app.listen(3000, function() {
      console.log("Server started on port 3000");
    });
    
    

    free API

    https://github.com/public-apis/public-apis


    EJS 模版引擎

    https://www.npmjs.com/package/ejs

    https://github.com/mde/ejs

    if 条件逻辑判断

    <% if (user) { %>
      <h2><%= user.name %></h2>
    <% } %>
    
    
    Flag Counter

    ©xgqfrms 2012-2020

    www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!


  • 相关阅读:
    xmlHttpRequest参数
    蒙哥马利:“沙漠之狐”猎手
    c# as is 类型转换
    值类型和引用类型
    BuuctfmiscN种方法解决
    Buuctfmisc二维码
    Buuctfweb[HCTF 2018]WarmUp
    Buuctfmisc大白
    map用索引作下标之后,再插值时报错.
    c++ stl 的string 的size() legth()区别
  • 原文地址:https://www.cnblogs.com/xgqfrms/p/12748494.html
Copyright © 2020-2023  润新知