Basic
Update node engine
brew update brew upgrade node
How to run shell command and get output?
Non-stream formatted output
const util = require('util'); const exec = util.promisify(require('child_process').exec); async function lsWithGrep() { try { const { stdout, stderr } = await exec('ls | grep js'); console.log('stdout:', stdout); console.log('stderr:', stderr); } catch (err) { console.error(err); }; }; lsWithGrep();
Output stream
const { execSync } = require('child_process'); // stderr is sent to stdout of parent process // you can set options.stdio if you want it to go elsewhere const stdout = execSync('ls'); const { spawnSync} = require('child_process'); const child = spawnSync('ls', ); console.error('error', child.error); console.log('stdout ', child.stdout); console.error('stderr ', child.stderr);
Reference how-to-run-shell-script-file-or-command-using-nodejs
How to write API requests?
GraphQL & Axios
const axios = require("axios") axios({ url: 'https://1jzxrj179.lp.gql.zone/graphql', method: 'post', data: { query: ` query PostsForAuthor { author(id: 1) { firstName posts { title votes } } }` } }).then((result) => { console.log(result.data) });
Fetch
const fetch = require('node-fetch'); fetch('https://1jzxrj179.lp.gql.zone/graphql', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ query: '{ posts { title } }' }), }) .then(res => res.json()) .then(res => console.log(res.data)); // Pass variables for dynamic arguments fetch({ query: `query PostsForAuthor($id: Int!) { author(id: $id) { firstName posts { title votes } } }`, variables: { id: 1 }, }).then(res => { console.log(res.data); });
Apollo fetch
const { createApolloFetch } = require('apollo-fetch'); const fetch = createApolloFetch({ uri: 'https://1jzxrj179.lp.gql.zone/graphql', }); fetch({ query: '{ posts { title }}', }).then(res => { console.log(res.data); });
package.json
How to run npm scripts
Run multiple commands in parallel
"scripts": { "start-test": "cordova prepare && cordova platform add browser", }
$ yarn start-test
Run multiple commands in parallel ignoring error of previous command
"scripts": { "start-test": "cordova prepare; cordova platform add browser", }
$ yarn start-test
Leave a Reply