Commit a8bb0973 authored by winai buttasart's avatar winai buttasart

add contact-manager CLI project

parent 238ca4dc
node_modules/
\ No newline at end of file
const program = require('commander');
const {
addContact,
getContact
} = require('./logic');
// const a = require('./logic');
// console.log(a.toLower("winaiWWERWER"));
// Require logic.js file and extract controller functions using JS destructuring assignment
program
.version('0.1.0')
.description('Contact management system');
program
.command('addContact <firstame> <lname> <phone> <email>')
.alias('a')
.description('Add a contact')
.action((fname, lname, phone, email) => {
// console.log(`User : ${fname} ${lname} ${phone} ${email}`);
addContact({
fname,
lname,
phone,
email
});
});
program
.command('getContact <name>')
.alias('r')
.description('Get contact')
.action(name => getContact(name));
program
.command('programmer')
.alias('p')
.description('ดูข้อมูลโปรแกรมเมอร์')
.action(() => {
console.log('Programmer คือ วินัย');
});
program.parse(process.argv);
\ No newline at end of file
const mongoose = require('mongoose');
// const assert = require('assert');
mongoose.Promise = global.Promise;
//old mongoose connect
// const db = mongoose.connect('mongodb://localhost:27017/contactdb');
//new mongoose connect
mongoose.connect('mongodb://localhost:27017/contactdb');
const db = mongoose.connection;
// let lo = function toLower(v) {
// return v.toLowerCase();
// }
function toLower(v) {
return v.toLowerCase();
}
const contactSchema = mongoose.Schema({
fname: {
type: String,
set: toLower
},
lname: {
type: String,
set: toLower
},
phone: {
type: String,
set: toLower
},
email: {
type: String,
set: toLower
}
});
const Contact = mongoose.model('Contact', contactSchema);
const addContact = (contact) => {
Contact.create(contact, (err) => {
// assert.equal(null, err); //check null & err
console.info('เพิ่มรายการติดต่อใหม่สำเร็จ');
db.close();
});
};
const getContact = (name) => {
const search = new RegExp(name, 'i');
Contact.find({
$or: [{
fname: search
}, {
lname: search
}]
})
.exec((err, contact) => {
// assert.equal(null, err);
console.info(contact); //return contact type ==> list
console.info(`ค้นเจอทั้งหมด ${contact.length} รายการ`);
db.close();
});
};
// exports.toLower = lo;
module.exports = {
addContact,
getContact
};
\ No newline at end of file
nvm => node version management
nmv ใช้จัดการเวอร์ชันของโหนดเช่นดาวน์โหลดโหนดเวอร์ชั่นที่จะใช้
หรือเลือกว่าจะใช้โหนดเวอร์ชั่นอะไรในการใช้งานหรือพัฒนา
yarn add == npm install
inquirer commander คืออะไร
MIT licence คือ ??
https://naiwaen.debuggingsoft.com/2015/06/incorrect-about-open-source/
process คือ module ที่ช่วยให้เราเอาไว้จัดการกับ process
process มีให้อยู่แล้วใน node เหมือน console.log() นั่นแหล่ะ
promise คือสัญญา -> เมื่อทำเสร็จแล้วจะให้อะไรกลับมา
nmap -> ใช้ตรวจสอบพอร์ตที่เครื่องเราเปิดอยู่
\ No newline at end of file
{
"name": "contact",
"version": "1.0.0",
"description": "A command-line contact management system",
"main": "index.js",
"author": "nize",
"license": "MIT",
"preferGlobal": true,
"bin": "./index.js",
"dependencies": {
"commander": "^2.14.0",
"inquirer": "^5.1.0",
"mongoose": "^5.0.3"
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment