Node.js & RESTful API
-
stream
-
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
if 条件逻辑判断
<% if (user) { %>
<h2><%= user.name %></h2>
<% } %>
©xgqfrms 2012-2020
www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!