使用node,express,mongodb,ionic,ejs搭建的简单app我的总结


一、每次修改app.js或者其余路由js文件,都必须重启node app.js,不然修改不起做用!!!javascript

二、<link rel="stylesheet" href="/css/style.css"><!-- 路径写这个而不是../public/css/style.css -->
咱们经过 app.use(express.static(path.join(__dirname, 'public'))) 设置了静态文件目录为 public 文件夹,因此上面代码中的 href='/stylesheets/style.css' 就至关于 href='public/stylesheets/style.css'css

三、ejs 的标签系统很是简单,它只有如下三种标签:
<% code %>:JavaScript 代码。
<%= code %>:显示替换过 HTML 特殊字符的内容。
<%- code %>:显示原始 HTML 内容。html

四、req.body : 就是 POST 请求信息解析事后的对象,例如咱们要访问 POST 来的表单内的 name="password" 域的值,只需访问req.body['password'] 或 req.body.password 便可。java

五、res.redirect : 重定向功能,实现了页面的跳转,更多关于 res.redirect 的信息请查阅: http://expressjs.com/api.html#res.redirect 。node

六、User :在前面的代码中,咱们直接使用了 User 对象。User 是一个描述数据的对象,即 MVC 架构中的模型。前面咱们使用了许多视图和控制器,这是第一次接触到模型。与视图和控制器不一样,模型是真正与数据打交道的工具,没有模型,网站就只是一个外壳,不能发挥真实的做用,所以它是框架中最根本的部分。python

七、解决警告
“express-session deprecated undefined resave option; provide resave option at app.js:29:9
express-session deprecated undefined saveUninitialized option; provide saveUninitialized option at app.js:29:9”
app.use(session({
resave: true, ——这个地方改成true便可。
saveUninitialized: true,
secret: settings.cookieSecret,
key: settings.db,//cookie name
cookie: {maxAge: 1000 * 60 * 60 * 24 * 30},//30 days
store: new MongoStore({
db: settings.db,
host: settings.host,
port: settings.port
})
}));jquery

八、解决报错
“{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version ”c++

找到 npm 的module mongodb ..node_modules\mongodb\node_modules\bson\ext\index.js
在catch块改变bson的js本版路径:
bson = require('../build/Release/bson');
变成
bson = require('../browser_build/bson');
若是发现连文件夹browser_biuild都没有的话(个人状况就是这样),直接复制文件:
..node_modules\bson\build\Release\bson
from
..node_modules\bson\browser_build\bsonmongodb

九、报错:“req.flash() requires sessions”“req.flash is not a function”"error setting ttl index on collection : sessions"出现各类未知错误,可尝试把相关依赖更新到最新版本数据库

十、app.get() 和 app.post() 的第一个参数都为请求的路径,第二个参数为处理请求的回调函数,回调函数有两个参数分别是 req 和 res,表明请求信息和响应信息
// GET /search?q=tobi+ferret
req.query.q
// => "tobi ferret"

// GET /shoes?order=desc&shoe[color]=blue&shoe[type]=converse
req.query.order
// => "desc"

req.query.shoe.color
// => "blue"

req.query.shoe.type
// => "converse"

// POST user[name]=tobi&user[email]=tobi@learnboost.com
req.body.user.name
// => "tobi"

req.body.user.email
// => "tobi@learnboost.com"

// POST { "name": "tobi" }
req.body.name
// => "tobi"

// GET /user/tj
req.params.name
// => "tj"

// GET /file/javascripts/jquery.js
req.params[0]
// => "javascripts/jquery.js"

// ?name=tobi
req.param('name')
// => "tobi"

// POST name=tobi
req.param('name')
// => "tobi"

// /user/tobi for /user/:name
req.param('name')
// => "tobi"

十一、报错:“connection strategy not found”
解答:app.use(session({
resave: true,
saveUninitialized: true,
secret: settings.cookieSecret,
key: settings.db,//cookie name
cookie: {maxAge: 1000 * 60 * 60 * 24 * 30},//30 days
store: new MongoStore({
// db: settings.db,
// host: settings.host,
// port: settings.port
url: 'mongodb://localhost/teamworkapp'//使用这个使用前面的三个
})

十二、登陆页面跳转不成功:
始终进入密码错误而登陆失败——变量名没有一一对应致使两个变量怎么对比都不相等
用户存在以及密码正确状况下,进入主页跳转失败,报错“ res.rediret is not a function”——res.rediret拼写错误,改成res.redirect(查错应从最基本的方法入手)

1三、报错“error:$injector:unpr。。。”引入ionic.bundle.min.js文件致使相关页面没法显示正常,替换该文件,页面正常显示

1四、某些问题可能和缓存有关,要几时清除缓存

1五、如何给连接数据库的js文件传递id呢??
路由里面:Project.get(req, function (err, projects) //传输req
查询数据库的js里面:Project.get=function(req,callback)//接受req

1六、package.json里面
"scripts": {
"start": "supervisor app.js"//配置这句代码,每次启动项目cmd执行这句代码
}

1七、post数据没有提交
手动设置action指定提交到哪一个页面;
<form method="post" action="/resetChangePsw">

1八、数据库的数据没有修改
_id数据类型不对,是ObjectId不是字符串类型;
var ObjectID = require('mongodb').ObjectID;
collection.update({_id:ObjectID(account)},{$set:{a_password:newpsw}});
给页面传递过来的数据是字符串须要转化为指定的数据类型才能查询数据库。

1九、图片上传组件:formidable,multer
发送邮件组件:nodemailer,emailjs

20、//存储各类时间格式,方便之后扩展
var time = {
date: date,
year : date.getFullYear(),
month : date.getFullYear() + "-" + (date.getMonth() + 1),
day : date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(),
minute : date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " " +
date.getHours() + ":" + (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes())
}

2一、Uncaught SyntaxError: Invalid or unexpected token :代码书写错误,可能成对的符号缺乏之一,如:"",'',(),{}。

2二、mongodb模糊查询
db.test_info.find({"tname": {$regex: '测试', $options:'i'}}) ;

2三、
查看test数据库里的全部集合: show collections;
db的帮助文档,输入:db.help();
表的帮助,格式:db.表名.help()

2四、npm install --save modulename 下载模块组件而且更新package.json里面的dependencies

2五、MongoDB导入和导出1、MongoDB数据导入与导出一、导出工具:mongoexport (1)概念: mongoDB中的mongoexport工具能够把一个collection导出成JSON格式或CSV格式的文件。能够经过参数指定导出的数据项,也能够根据指定的条件导出数据。 (2)语法: mongoexport -d dbname -c collectionname -o file --type json/csv -f field 参数说明: -d :数据库名 -c :collection名 -o :输出的文件名 --type : 输出的格式,默认为json -f :输出的字段,若是-type为csv,则须要加上-f "字段名" (3)示例: sudo mongoexport -d mongotest -c users -o /home/python/Desktop/mongoDB/users.json --type json -f "_id,user_id,user_name,age,status" 二、数据导入:mongoimport (1)语法: mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field 参数说明: -d :数据库名 -c :collection名 --type :导入的格式默认json -f :导入的字段名 --headerline :若是导入的格式是csv,则可使用第一行的标题做为导入的字段 --file :要导入的文件 (2)示例: sudo mongoimport -d mongotest -c users --file /home/mongodump/articles.json --type json2、MongoDB备份与恢复一、MongoDB数据库备份 一、语法: mongodump -h dbhost -d dbname -o dbdirectory 参数说明: -h: MongDB所在服务器地址,例如:127.0.0.1,固然也能够指定端口号:127.0.0.1:27017 -d: 须要备份的数据库实例,例如:test -o: 备份的数据存放位置,例如:/home/mongodump/,固然该目录须要提早创建,这个目录里面存放该数据库实例的备份数据。 二、实例: sudo rm -rf /home/momgodump/ sudo mkdir -p /home/momgodump sudo mongodump -h 192.168.17.129:27017 -d itcast -o /home/mongodump/ -二、MongoDB数据库恢复 一、语法: mongorestore -h dbhost -d dbname --dir dbdirectory 参数或名: -h: MongoDB所在服务器地址 -d: 须要恢复的数据库实例,例如:test,固然这个名称也能够和备份时候的不同,好比test2 --dir: 备份数据所在位置,例如:/home/mongodump/itcast/ --drop: 恢复的时候,先删除当前数据,而后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用! 二、实例: mongorestore -h 192.168.17.129:27017 -d itcast_restore --dir /home/mongodump/itcast/

相关文章
相关标签/搜索