0.5.2 • Published 9 years ago
nagu-profile v0.5.2
nagu-profile
How to Install
$ npm install nagu-profileGetting Started
MongoProfileMiddlewares
使用MongoDB存储数据的express中间件。
创建对象
export const profileMiddlewares = new MongoProfileMiddlewares(mongoUrl, profileCollection);参数:
- mongoUrl 必须的,数据库连接字符串
- profileCollection 存储profile数据的集合的名称,默认为
profiles
get(getId(req, res) , success(profile, req, res, next), fail(result, req, res, next) )
返回一个用于根据id获取profile的async中间件。
const getProfile = profileMiddlewares.get(
req => (new ObjectId(req.params.id)),
(profile, req, res) => {
if (profile) {
res.send({ ret: 0, data: profile });
} else {
res.send({ ret: 404 });
}
});
router.get('/:id', getProfile);参数:
- getId 必须的,一个函数,用于获取profile的Id。
- success 获取profile之后的处理函数,默认为:
(doc, req, res, next) => { res.profile = doc; next(); } - fail 失败之后的处理函数,默认为:
(result, req, res) => { res.send(result); }
findOne(getQuery(req, res) , success(profile, req, res, next), fail(result, req, res, next) )
返回一个用于根据查询条件获取第一个profile的async中间件。
const findOneProfileByUserId = profileMiddlewares.findOne(
req => ({ userid: req.params.userid}),
(profile, req, res) => {
if (profile) {
res.send({ ret: 0, data: profile });
} else {
res.send({ ret: 404 });
}
});
router.get('/find-by-userid/:userid', findOneProfileByUserId);参数:
- getQuery 必须的,一个函数,用于获取profile的查询条件。
- success 获取profile之后的处理函数,默认为:
(doc, req, res, next) => {
res.profile = doc;
next();
}- fail 失败之后的处理函数,默认为:
(result, req, res) => {
res.send(result);
}ProfileManager
引入对象,初始化
import { ProfileManager } from 'nagu-profile';
const mongoUrl = 'mongo://localhost/mydb';
const manager = new ProfileManager(mongoUrl, 'profiles');add
添加profile
const newProfile = {
userid: 'xxx',
name: 'XiaoMing',
otherProperty: 'otherValue',
};
const result = await manager.add(newProfile);get(id)
根据id获取用户数据
How to Test
Run one, or a combination of the following commands to lint and test your code:
$ npm run lint # Lint the source code with ESLint
$ npm test # Run unit tests with Mocha
$ npm run test:watch # Run unit tests with Mocha, and watch files for changes
$ npm run test:cover # Run unit tests with code coverage by IstanbulTo launch the documentation site, run:
$ npm install -g easystatic
$ npm startLicense
MIT © 2016 na57