Node.js开发 ---- angular + markdown实现CRUD
来源:互联网 发布:做淘宝美工工资高吗 编辑:程序博客网 时间:2024/05/22 12:54
nodejs
mongodb
angular *1
项目结构
安装中间件
npm install express
npm install mongoose
npm install morgan
npm install body-parser
npm install method-override
npm install markdown
npm install angular-mark
流程图:没有图只有字我太懒了
add----------- post(md格式)--------- 服务器解析成html -------- 存入数据库(两个字段:[ text:html格式,mktext: md格式])
detail--------- get( html格式) -------- angular解析成html
edit------------ get(md格式)--------- post(md格式)--------- 服务器解析成html -------- 存入数据库(两个字段:[ text:html格式,mktext: md格式])
angular 将md格式转为html
$scope.a =$sce.trustAsHtml(a);
服务器端 将md格式转化为html
a = markdown.toHTML(a);
route/index.js
var Todo = require('./todo');markdown = require('markdown').markdown;var markdown = require( "markdown" ).markdown;module.exports = function(app) {//查app.get('/api/todos', function(req, res) {Todo.find(function(err, todos, txt) {if (err)res.send(err);res.json(todos); });});//增app.post('/api/todos', function(req, res) {//解析为htmlvar mktext = markdown.toHTML(req.body.text);Todo.create({title :req.body.title, //标题text : mktext,//html格式文本mktext:req.body.text//md格式文本}, function(err, todo) {if (err)res.send(err);Todo.find(function(err, todos) {if (err)res.send(err);res.json(todos); });});});//删app.delete('/api/todos/:todo_id', function(req, res) {Todo.remove({_id : req.params.todo_id;//获取参数}, function(err, todo) {if (err)res.send(err);Todo.find(function(err, todos) {if (err)res.send(err)res.json(todos);});});});//改app.post('/api/todos/:todo_id', function(req, res) {var id = req.params.todo_id;//获取参数var editmktext = markdown.toHTML(req.body.mktext);//解析文本var updatestr = {'title': req.body.title ,'text': editmktext ,'mktext': req.body.mktext};//mongoose更新Todo.findByIdAndUpdate(id, updatestr, function(err, todo) {if (err)res.send(err);Todo.find(function(err, todos) {if (err)res.send(err)res.json(todos);});});});app.get('*', function(req, res) {res.sendfile('./public/index.html');});};
public/app.js
var app = angular.module('App', ['ngRoute']);app.config(function($routeProvider) { $routeProvider .when('/', { templateUrl: 'list.html', controller: 'listController' }) .when('/edit/:id/:_id', { templateUrl: 'edit.html', controller: 'editController' }).when('/add', { templateUrl: 'add.html', controller: 'addController' }).when('/detail/:id', { templateUrl: 'detail.html', controller: 'detailController' })});app.controller('listController', function($scope, $routeParams) {$scope.pageClass = 'page-list';});app.controller('editController', function($scope, $routeParams ,$http){var index = $routeParams.id; var vm = this; vm.supplierList = {}; $http.get("/api/todos") .success(function(data) { vm.supplierList = data; $scope.db = data[index]; }); });app.controller('addController', function($scope) { $scope.pageClass = 'page-add';});app.controller('detailController', ['$scope','$sce', '$routeParams','$http', function ngBindHtmlCtrl($scope, $sce , $routeParams ,$http) { var index = $routeParams.id; var vm = this; vm.supplierList = {}; $http.get("/api/todos") .success(function(data) {vm.supplierList = data; $scope.db = data[index];var htmltxt = data[index].text;$scope.myHTML =$sce.trustAsHtml(htmltxt);//转html就在这里 }); }]);function mainController($scope,$routeParams, $http) {$scope.formData = {};//select$http.get('/api/todos').success(function(data) {$scope.todos = data;}).error(function(data) {console.log('Error: ' + data);});//add$scope.createTodo = function() {$http.post('/api/todos', $scope.formData).success(function(data) {$scope.formData = {}; $scope.todos = data;console.log(data);setTimeout(function(){ window.location.href = '#/'; },500);}).error(function(data) {console.log('Error: ' + data);});};// delete$scope.deleteTodo = function(id) {$http.delete('/api/todos/' + id).success(function(data) {$scope.todos = data;}).error(function(data) {console.log('Error: ' + data);});};// update$scope.updateTodo = function() { var id = $routeParams._id;console.log(id);$http.post('/api/todos/' + id, $scope.db).success(function(data) {$scope.db = {}; $scope.todos = data;console.log(data);setTimeout(function(){ window.location.href = '#/'; },500);}).error(function(data) {console.log('Error: ' + data);});};}
list.html
edit.html/add.html
detail.html
数据库
完整代码:https://github.com/mmmscheng/dbcrud.git
0 0
- Node.js开发 ---- angular + markdown实现CRUD
- node.js开发之使用mongoose实现简单的CRUD
- Node.js MongoDB Angular Web开发 ( 1 )
- 使用 Angular.js, Node.js 和 MongoDB开发简单案例
- Node.js + MySQL CRUD操作
- Node.js开发入门—Angular简单示例
- 使用Angular.js建立页面级CRUD
- Node+Express+mysql实现CRUD
- node.js+ express + gulp + angular
- Node.js简单操作MongoDB(CRUD)
- 10分钟搭建好Angular框架开发环境(idea开发工具+node.js)
- Node.js实现WEB 服务开发
- node+express+mysql 实现基本CRUD
- Node.js开发入门(八)——Angular简单示例
- node.js服务器中支持angular路由
- 用node.js安装Angular cli和创建Angular项目
- node.js学习之markdown
- Node.js中使用Markdown
- Linux 设置开机挂载 ISO文件
- nm命令
- aspose.words生成word文档(.dox、.docx等)时,生成目录后,目录中的页码和实际页码不对应,代码中更新域都没用
- 你的名字
- Android AutoLayout全新的适配方式 堪称适配终结者
- Node.js开发 ---- angular + markdown实现CRUD
- 使用Spring 注解实现调度任务及cron表达式详解
- bfs 胜利大逃亡
- Yii2 开启事务 批量插入
- shell ip循环样例
- 1015. 德才论 (25)
- Google V8编程详解(三)Handle & HandleScope
- Oracle创建数据库
- 3D匹配原理