express-cmd 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +16 -5
- data/lib/express_cmd/generator.rb +2 -0
- data/lib/express_cmd/version.rb +1 -1
- data/templates/config/mongo.js +58 -0
- data/templates/config/mongo.yml +23 -0
- data/templates/package.json.erb +2 -1
- data/templates/server.js +4 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 08bc2c1db119896d78c2afbad2ffa8f6b8c47071
|
4
|
+
data.tar.gz: e663d753bd60f5950421b1d386febba7eb4e78d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 235db8b1e75cc2d5e2a46b13df3f6c4bfa849838449c21d19e36dbbc912fb3ed24d53d40fec82ddd822d5f82d26163562e260d8300b7bf92ed5e96014ed3bfad
|
7
|
+
data.tar.gz: b512c1b15c55c6861ddbff2c44da4af8a9efff746188ae8d260225453436ebc0a0b742ab949535f1db61a7bbf63735b212399f242fc9c6cc16a23c51335378a3
|
data/README.md
CHANGED
@@ -1,9 +1,5 @@
|
|
1
1
|
# ExpressCmd
|
2
2
|
|
3
|
-
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/express/cmd`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
|
-
|
5
|
-
TODO: Delete this and the text above, and describe your gem
|
6
|
-
|
7
3
|
## Installation
|
8
4
|
|
9
5
|
Add this line to your application's Gemfile:
|
@@ -22,7 +18,22 @@ Or install it yourself as:
|
|
22
18
|
|
23
19
|
## Usage
|
24
20
|
|
25
|
-
|
21
|
+
I choose `mongodb` as my datastore, and I perfer to use `mongoose`.
|
22
|
+
|
23
|
+
```bash
|
24
|
+
# make sure you have installed node-inspector (debug tool) and nodemon (node auto reload after saved).
|
25
|
+
npm install -g node-inspector
|
26
|
+
npm install -g nodemon
|
27
|
+
|
28
|
+
gem install express-cmd
|
29
|
+
|
30
|
+
express project-name
|
31
|
+
```
|
32
|
+
|
33
|
+
## Test
|
34
|
+
|
35
|
+
I choose `mocha` and `chai`, and use `Makefile` to run test. Run `make jenkins` to generate test report.
|
36
|
+
|
26
37
|
|
27
38
|
## Development
|
28
39
|
|
data/lib/express_cmd/version.rb
CHANGED
@@ -0,0 +1,58 @@
|
|
1
|
+
var yaml = require('js-yaml');
|
2
|
+
var ejs = require('ejs');
|
3
|
+
var fs = require('fs');
|
4
|
+
var path = require('path');
|
5
|
+
var queryString = require('query-string');
|
6
|
+
var mongoose = require('mongoose');
|
7
|
+
|
8
|
+
var logger = require('../lib/logger');
|
9
|
+
|
10
|
+
var dbURI = 'mongodb://';
|
11
|
+
|
12
|
+
// CONNECTION EVENTS
|
13
|
+
// When successfully connected
|
14
|
+
mongoose.connection.on('connected', function (aaa, bbb, ccc) {
|
15
|
+
logger.info('Mongoose default connection open to ' + dbURI);
|
16
|
+
});
|
17
|
+
|
18
|
+
// If the connection throws an error
|
19
|
+
mongoose.connection.on('error',function (err) {
|
20
|
+
logger.error('Mongoose default connection error: ' + err);
|
21
|
+
});
|
22
|
+
|
23
|
+
// When the connection is disconnected
|
24
|
+
mongoose.connection.on('disconnected', function () {
|
25
|
+
logger.info('Mongoose default connection disconnected');
|
26
|
+
});
|
27
|
+
|
28
|
+
// When the connection is open
|
29
|
+
mongoose.connection.on('open', function () {
|
30
|
+
logger.info('Mongoose default connection is open');
|
31
|
+
});
|
32
|
+
|
33
|
+
// If the Node process ends, close the Mongoose connection
|
34
|
+
process.on('SIGINT', function() {
|
35
|
+
mongoose.connection.close(function () {
|
36
|
+
logger.info('Mongoose default connection disconnected through app termination');
|
37
|
+
process.exit(0);
|
38
|
+
});
|
39
|
+
});
|
40
|
+
|
41
|
+
module.exports.connect = function (env) {
|
42
|
+
var dbFile = yaml.safeLoad(ejs.render(fs.readFileSync(path.resolve(__dirname, '../config/mongo.yml'), 'UTF-8')));
|
43
|
+
var dbcf = dbFile[env];
|
44
|
+
|
45
|
+
// Build the connection string
|
46
|
+
if (dbcf.username && dbcf.password) {
|
47
|
+
dbURI += encodeURIComponent(dbcf.username) + ':' + encodeURIComponent(dbcf.password) + '@';
|
48
|
+
}
|
49
|
+
|
50
|
+
dbURI += dbcf.host + ':' + dbcf.port + '/' + dbcf.database + '?v=1&';
|
51
|
+
|
52
|
+
if (dbcf.options) {
|
53
|
+
dbURI += queryString.stringify(dbcf.options);
|
54
|
+
}
|
55
|
+
|
56
|
+
// Create the database connection
|
57
|
+
mongoose.connect(dbURI);
|
58
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
development:
|
2
|
+
host: localhost
|
3
|
+
port: 27017
|
4
|
+
database: demo-dev
|
5
|
+
|
6
|
+
test:
|
7
|
+
host: localhost
|
8
|
+
port: 27017
|
9
|
+
database: demo-test
|
10
|
+
|
11
|
+
production:
|
12
|
+
host: <%= process.env.MONGO_HOST %>
|
13
|
+
port: <%= process.env.MONGO_PORT %>
|
14
|
+
database: <%=process.env.MONGO_DBNAME %>
|
15
|
+
username: <%= process.env.MONGO_USERNAME %>
|
16
|
+
password: <%= process.env.MONGO_PASSWORD %>
|
17
|
+
|
18
|
+
staging:
|
19
|
+
host: <%= process.env.MONGO_HOST %>
|
20
|
+
port: <%= process.env.MONGO_PORT %>
|
21
|
+
database: <%= process.env.MONGO_DBNAME %>
|
22
|
+
username: <%= process.env.MONGO_USERNAME %>
|
23
|
+
password: <%= process.env.MONGO_PASSWORD %>
|
data/templates/package.json.erb
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
},
|
11
11
|
"keywords": [
|
12
12
|
],
|
13
|
-
"author": "
|
13
|
+
"author": "",
|
14
14
|
"license": "ISC",
|
15
15
|
"dependencies": {
|
16
16
|
"async": "^1.2.1",
|
@@ -24,6 +24,7 @@
|
|
24
24
|
"mocha": "^2.2.5",
|
25
25
|
"mocha-jenkins-reporter": "^0.1.8",
|
26
26
|
"moment": "^2.10.3",
|
27
|
+
"mongoose": "^4.0.8",
|
27
28
|
"morgan": "^1.5.2",
|
28
29
|
"multer": "^0.1.8",
|
29
30
|
"path": "^0.11.14",
|
data/templates/server.js
CHANGED
@@ -4,6 +4,8 @@ var bodyParser = require('body-parser');
|
|
4
4
|
var multer = require('multer');
|
5
5
|
var cookieParser = require('cookie-parser');
|
6
6
|
|
7
|
+
// mongo connect
|
8
|
+
var mongo = require('./config/mongo');
|
7
9
|
var logger = require('./lib/logger');
|
8
10
|
|
9
11
|
// MiddleWare
|
@@ -40,6 +42,8 @@ app.use('/api', apiRouter);
|
|
40
42
|
|
41
43
|
app.listen(app.get('port'), function() {
|
42
44
|
logger.info('Server started, listened on ' + app.get('port') + '.');
|
45
|
+
// connect with mongodb.
|
46
|
+
mongo.connect(app.get('env'));
|
43
47
|
});
|
44
48
|
|
45
49
|
module.exports = app;
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: express-cmd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- wluo
|
@@ -133,6 +133,8 @@ files:
|
|
133
133
|
- templates/.gitignore
|
134
134
|
- templates/Makefile
|
135
135
|
- templates/README.md.erb
|
136
|
+
- templates/config/mongo.js
|
137
|
+
- templates/config/mongo.yml
|
136
138
|
- templates/lib/errors.js
|
137
139
|
- templates/lib/logger.js
|
138
140
|
- templates/middlewares/before-filter.js
|
@@ -165,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
165
167
|
version: '0'
|
166
168
|
requirements: []
|
167
169
|
rubyforge_project:
|
168
|
-
rubygems_version: 2.4.
|
170
|
+
rubygems_version: 2.4.6
|
169
171
|
signing_key:
|
170
172
|
specification_version: 4
|
171
173
|
summary: Command for generating express project
|