Handling a PUT API call to write to a database using promisesNode module using promises and the revealing...
Is there a good way to store credentials outside of a password manager?
Is expanding the research of a group into machine learning as a PhD student risky?
What is the meaning of the square breakpoint in Visual Studio?
What does 算不上 mean in 算不上太美好的日子?
Efficient way to transport a Stargate
How to create a 32-bit integer from eight (8) 4-bit integers?
How to write papers efficiently when English isn't my first language?
Abbreviate author names as "Lastname AB" (without space or period) in bibliography
Sort a list by elements of another list
What deity do celestials/aasimars worship?
What is the difference between "behavior" and "behaviour"?
How did Doctor Strange see the winning outcome in Avengers: Infinity War?
What does "I’d sit this one out, Cap," imply or mean in the context?
How can a function with a hole (removable discontinuity) equal a function with no hole?
Tiptoe or tiphoof? Adjusting words to better fit fantasy races
Invade the Pyramid if you Dare
How does the UK government determine the size of a mandate?
How does buying out courses with grant money work?
Where does the Z80 processor start executing from?
I'm in charge of equipment buying but no one's ever happy with what I choose. How to fix this?
Hostile work environment after whistle-blowing on coworker and our boss. What do I do?
India just shot down a satellite from the ground. At what altitude range is the resulting debris field?
Is HostGator storing my password in plaintext?
Go Pregnant or Go Home
Handling a PUT API call to write to a database using promises
Node module using promises and the revealing module patternReading the contents at three URLs using PromisesRewriting authentication controller using promisesAsynchronous database lookups in Node.JS using PromisesNode.js module using Promises (client for KeePassHttp)Handling login using promisesDeleting rooms using nested promisesFetching and shortening URLs with API calls using PromisesJavaScript / Express error handling w/ promisesRead files from a directory using Promises
$begingroup$
The following function is accepting PUT connection to a server API, checks authorization to write and then performs write to a database.
The eslint
linting tool complains saying "avoid nesting promises" and "Each then() should return a value or throw". I'm new to promises and I am not sure how to improve my code.
app.put('/api/v0/note/:id', (req, res) => {
const id = req.params.id;
const uid = req.user ? req.user.uid : null;
return user_can_edit_note(uid, id).then(yes => {
if (yes) {
return db.collection('notes').doc(id).update({
title: req.body.title,
text: req.body.text,
author_uid: req.user ? req.user.uid : null,
updated_on: admin.firestore.Timestamp.now()
}).then(() => {
return res.json({
ok: "ok"
});
});
} else {
return res.status(403).json({
error: "Permission Denied",
note_id: id
});
}
}).catch((err) => {
console.error(err);
return res.status(500).json({error: String(err)});
});
});
javascript node.js database promise
$endgroup$
add a comment |
$begingroup$
The following function is accepting PUT connection to a server API, checks authorization to write and then performs write to a database.
The eslint
linting tool complains saying "avoid nesting promises" and "Each then() should return a value or throw". I'm new to promises and I am not sure how to improve my code.
app.put('/api/v0/note/:id', (req, res) => {
const id = req.params.id;
const uid = req.user ? req.user.uid : null;
return user_can_edit_note(uid, id).then(yes => {
if (yes) {
return db.collection('notes').doc(id).update({
title: req.body.title,
text: req.body.text,
author_uid: req.user ? req.user.uid : null,
updated_on: admin.firestore.Timestamp.now()
}).then(() => {
return res.json({
ok: "ok"
});
});
} else {
return res.status(403).json({
error: "Permission Denied",
note_id: id
});
}
}).catch((err) => {
console.error(err);
return res.status(500).json({error: String(err)});
});
});
javascript node.js database promise
$endgroup$
1
$begingroup$
The current question title, which states your concerns about the code, is too general to be useful here. Please edit to the site standard, which is for the title to simply state the task accomplished by the code. Please see How to get the best value out of Code Review: Asking Questions for guidance on writing good question titles.
$endgroup$
– Toby Speight
12 mins ago
add a comment |
$begingroup$
The following function is accepting PUT connection to a server API, checks authorization to write and then performs write to a database.
The eslint
linting tool complains saying "avoid nesting promises" and "Each then() should return a value or throw". I'm new to promises and I am not sure how to improve my code.
app.put('/api/v0/note/:id', (req, res) => {
const id = req.params.id;
const uid = req.user ? req.user.uid : null;
return user_can_edit_note(uid, id).then(yes => {
if (yes) {
return db.collection('notes').doc(id).update({
title: req.body.title,
text: req.body.text,
author_uid: req.user ? req.user.uid : null,
updated_on: admin.firestore.Timestamp.now()
}).then(() => {
return res.json({
ok: "ok"
});
});
} else {
return res.status(403).json({
error: "Permission Denied",
note_id: id
});
}
}).catch((err) => {
console.error(err);
return res.status(500).json({error: String(err)});
});
});
javascript node.js database promise
$endgroup$
The following function is accepting PUT connection to a server API, checks authorization to write and then performs write to a database.
The eslint
linting tool complains saying "avoid nesting promises" and "Each then() should return a value or throw". I'm new to promises and I am not sure how to improve my code.
app.put('/api/v0/note/:id', (req, res) => {
const id = req.params.id;
const uid = req.user ? req.user.uid : null;
return user_can_edit_note(uid, id).then(yes => {
if (yes) {
return db.collection('notes').doc(id).update({
title: req.body.title,
text: req.body.text,
author_uid: req.user ? req.user.uid : null,
updated_on: admin.firestore.Timestamp.now()
}).then(() => {
return res.json({
ok: "ok"
});
});
} else {
return res.status(403).json({
error: "Permission Denied",
note_id: id
});
}
}).catch((err) => {
console.error(err);
return res.status(500).json({error: String(err)});
});
});
javascript node.js database promise
javascript node.js database promise
edited 2 mins ago
200_success
130k17155419
130k17155419
asked 6 hours ago
Emanuele PaoliniEmanuele Paolini
2,0021712
2,0021712
1
$begingroup$
The current question title, which states your concerns about the code, is too general to be useful here. Please edit to the site standard, which is for the title to simply state the task accomplished by the code. Please see How to get the best value out of Code Review: Asking Questions for guidance on writing good question titles.
$endgroup$
– Toby Speight
12 mins ago
add a comment |
1
$begingroup$
The current question title, which states your concerns about the code, is too general to be useful here. Please edit to the site standard, which is for the title to simply state the task accomplished by the code. Please see How to get the best value out of Code Review: Asking Questions for guidance on writing good question titles.
$endgroup$
– Toby Speight
12 mins ago
1
1
$begingroup$
The current question title, which states your concerns about the code, is too general to be useful here. Please edit to the site standard, which is for the title to simply state the task accomplished by the code. Please see How to get the best value out of Code Review: Asking Questions for guidance on writing good question titles.
$endgroup$
– Toby Speight
12 mins ago
$begingroup$
The current question title, which states your concerns about the code, is too general to be useful here. Please edit to the site standard, which is for the title to simply state the task accomplished by the code. Please see How to get the best value out of Code Review: Asking Questions for guidance on writing good question titles.
$endgroup$
– Toby Speight
12 mins ago
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
});
});
}, "mathjax-editing");
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "196"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216388%2fhandling-a-put-api-call-to-write-to-a-database-using-promises%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Code Review Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216388%2fhandling-a-put-api-call-to-write-to-a-database-using-promises%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
$begingroup$
The current question title, which states your concerns about the code, is too general to be useful here. Please edit to the site standard, which is for the title to simply state the task accomplished by the code. Please see How to get the best value out of Code Review: Asking Questions for guidance on writing good question titles.
$endgroup$
– Toby Speight
12 mins ago