method one:
For Windows:
Open the start menu
Type windows+R or open "Run"
Execute the following command:
chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security
from: https://stackoverflow.com/questions/3102819/disable-same-origin-policy-in-chrome
method two:
- RIGHT-CLICK the lock symbol immediately left of the URL
- click “GEAR Site settings” (bottom option)
- scroll down to “Insecure content” (seventh from bottom)
- change “Block” to “Allow”
it appears using postman, and trying to return an object:
SELECT JSON_ARRAYAGG
( DISTINCT JSON_OBJECT
( 'myFirstVariable' , `myTable`.`myFirstVariable`
, 'mySecondVariable , `myTable`.`mySecondVariable`
) 'JSON_ARRAYAGG'
)
FROM ........
;
BODY—x-www-form-urlencoded does
NOT work. just use ordinary params (far left column) instead:
http://192.168.100.225:3030/knex-generic-raw?firstParam=myFirstParam&secondParam=mYSecondParam
Javascript usage
1: use
const when in a for loop (makes more readable
for (const myRow of Object
2: start using
querySelector and
querySelectorAll
document.querySelectorAll('tag#.id or class').forEach( element => { console.log(element); } );
3: when querying for selector, use the data attribute (notice
[data-XXX=]):
document.getElementById('mark').querySelectorAll('smart-input[data-zyx="myVal"] input'))
4: use
setAttribute() and
getAttribute() for data & value in any element
// stop using element.dataset.thisDataValue
// use element.getAttribute('data-this-data-value');
5: Use
Boolean() to test null, zero, blank,etc
if ( Boolean(myValue) == true ) {
6: to use a variable value for an object tag, enclose the variable name inside of square brackets:
let myVar = 'mark';
let newObj = { [myVar] : 'this value' } ;
7. Destructuring – there is a fast way to extract out an object element:
let myVar = thisObj.myVar;
let {myVar} = thisObj ; // same as above but less typing.
8.
object mapping:
// Creates an array of objects with unique "name" property values.
let uniqueObjArray = [
...new Map(myObjArray.map( item => {
const { keyToBeSkipped, anotherKeyToSkip, ...remainingItems} = item ;
return [ JSON.stringify(remainingItems) , remainingItems]
})).values(),
];
console.info( uniqueObjArray);
https://yagisanatode.com/get-a-unique-list-of-objects-in-an-array-of-object-in-javascript/
https://plainenglish.io/blog/how-to-get-distinct-values-from-an-array-of-objects-in-javascript
https://www.geeksforgeeks.org/how-to-remove-a-key-from-javascript-object/
9. to manipulate a stylesheet:
const stylesheet = new CSSStyleSheet();
stylesheet.replaceSync('body { background-color: orange; }');
document.adoptedStyleSheets = [stylesheet];
10. to extract out a value from an object, use
object(DOT)find:
const frequency = values[0] ; ;
const frequencyListAutoIncr
= frequencyListObj.find( item => item.frequency == values[0]).frequencyListAutoIncr ;
11: debounce – see separate article on debounce
12: every() The every() method of Array instances tests whether all elements in the array pass the test implemented by the provided function. It returns a Boolean value.and why it returns true for an empty array
const isBelowThreshold = (currentValue) => currentValue < 40;
const array1 = [1, 30, 39, 29, 10, 13];
console.log(array1.every(isBelowThreshold));
// Expected output: true
99: when leaving a promise, create a fake error then call it:
class ExitEarly extends Error {
constructor(message) {
super(message);
this.name = “ExitEarly”;
}
}
firstPromise.then(result => {
if (/* time to exit early for whatever reason */) {
throw new ExitEarly(‘Exiting after firstPromise’);
}
return secondPromise(result);
})
https://knexjs.org/guide/query-builder.html#knex
module.exports = (options = {}) => {
return async context => {
context.params.query = { // added by mark
...context.params.query, // added by mark
$select: ['clientStimwordNotes'] // added by mark
} // added by mark
return context;
};
};
to completely rewrite the query:
module.exports = (options = {}) => {
return async context => {
const query = context.service.createQuery(context.params);
const knexClient = context.app.get(‘knexClient’) ;
query .clear(‘select’)
.select ( ‘col_4’
, { ‘my Column’ , `col0’ }
, knexClient.raw(“CONCAT AS col1_2”)
)
.distinct()
.orderBy(‘languageNormsName’)
;
context.params.knex = query
return context;
};
};
notice the
THREE different styles of selection.
1 – RIGHT-CLICK LastPass icon (RED square three white dots in the chrome extensions toolbar)
2 – select options (third one down)
3 – General tab (if not already selected)
4 – Log out after this many minutes of inactivity 60 (make sure its checked!)
5 – SAVE button lower right