React Native, Express, Node, MongoDB stack - mongodb

I am currently working on my first react-native application. I have some starter code from MERN stack projects that I have previously worked on, and in those projects, linking the frontend and backend wasn’t an issue. I am using redux for its reducers and actions to try to send data to my mongodb database. In my redux actions, I am using axios for API calls, but none of them work.
https://levelup.gitconnected.com/mernn-to-do-app-dab1e3173493
I also tried running the server and the expo app at the same time (like in the link above), but it is not working. Sometimes, the server side will coincide with the client side and result in the error Error: listen EADDRINUSE: address already in use :::5000.
Does anyone know an easy way to set up an express, node, and mongodb backend to a react-native app?

BEFORE: Run npm start in the terminal and check the output to see if the terminal print something like server.js nodemon src/server.js.
REASON: If you do then your scripts are calling server.js twice, which is causing this Error.
FIX: I had the same issue and fixed it by fixing my package.json in root folder and also the package.json in the server folder.
AFTER: you should see the terminal print nodemon src/server.js when you run your script.
Hope this helps.

Related

Github Codespace CraftCMS Headers sent error

I am trying to setup a Github Codespace env with PHP and MySQL to run CraftCMS 4. Everything works fine from PHP/MySQL side and I was also able to install all CraftCMS dependencies using composer and could run craft setup from console.
The only issue I have is that as soon as I run the Built-in-PHP Webserver or Apache server and try to access Craft CMS through localhost I get a errors saying headers already sent.
[web.ERROR] [yii\base\ErrorException:2] session_name(): Session name cannot be changed after headers have already been sent
This only happens if I try to access /craft/web... if I access another php file within the project it shows without issues.
So it seems like something CraftCMS specific maybe. Any ideas on what could cause this behaviour?

how to to host single-spa root-config and modules on a central server during development

I've been experimenting with single-spa for a while, and understand the basics of the developer experience. Create a parcel, yarn start on a unique port, add the reference to the import map declaration, and so on. The challenge with this is that as my root-config accrues more and more modules managing ports and import-maps starts to get tedious. What I want is to publish these modules to a central repository and load them from there (e.g., http://someserver.com/repository/moduleA/myorg-modulea.js, etc.).
I was recently introduced to localstack and started thinking maybe a local S3 bucket would serve for this. I have a configuration where builds (yarn build) are automatically published to an s3 bucket running on localstack. But when I try to load the root config index.html from the bucket I get the following JS error:
Unable to resolve bare specifier '#myorg/root-config'
I can access the JS files for each parcel and the root-config just fine via curl, so I suppose this would be a problem with any http server used in the same way. I can flip the root config to use the standard webpack-dev-server instead (on port 9000) and it works okay. So I'm guessing there's a difference between how a production build resolves these modules vs. the local build.
Has anyone tried something like this and got it working?
I had a similar issue that I got to work with http-server by adding each child .js file to a sub-folder in the root-config directory and launching the web server at the root-config directory level.
"imports": {
"#myorg/root-config": "http://someserver.com/root-config.js",
"#myorg/moduleA": "http://someserver.com/modules/moduleA/myorg-modulea.js",
"#myorg/moduleB": "http://someserver.com/modules/moduleB/myorg-moduleb.js",
"#myorg/moduleC": "http://someserver.com/modules/moduleC/myorg-modulec.js",
}
Note: By default, Single-SPA has an "isLocal" check before the current import mappings. You'll need to remove this if using a production build or it won't load the correct mappings.
<% if (isLocal) { %>
In my case, I was using localhost instead of someserver so I could navigate into the 'repository' folder and run npx http-server to get everything to run correctly.
I was hung up on this for a little while so hopefully this leads you in the right direction.
For the record, after trying several approaches to hosting a repository as described above, I found the unresolved bare specifier problem went away. So I have to chalk that up as just not having the right URL in the import map. Measure twice, cut once.

Cannot start the application. TypeError: Cannot read property 'definition' of undefined at getFieldsJsonSchemaFor

I'm getting an extremely weird error when trying to npm start my loopback application. I literally did nothing to the code and then this all of a sudden started to happen
Cannot start the application. TypeError: Cannot read property
'definition' of undefined
at getFieldsJsonSchemaFor (/Users/vikramkhemlani/Desktop/loopback/node_modules/#loopback/repository-json-schema/dist/filter-json-schema.js:101:64)
I have the same exact code in another file (which i actually created a git repo from using this repo) but this one is throwing this error for some reason
I went through the same issue.
Apparently there are caches which need to clean up before starting the application. (Expired caches also appear in openapi before I get into this issue)
The project needs to be clean and re-install packages by following:
npm run clean
npm install
I have the same problem.
However, I solved it when I tried the following.
delete node_modules directory.
npm install.
Hello from the LoopBack team 👋
This may be a bug in LoopBack introduced by recent changes. Please create a small application reproducing the problem (see our Bug reporting instructions) and open a new GitHub issue in https://github.com/strongloop/loopback-next/issues/new

Angular Live Development Server api requests not found

really confused about this and don't know where to start.
Basically i have generated a new angular project with the "dotnet new angular" command.
Im using a fresh machine, node, npm etc etc are all up to date.
My issue is this template just does not work out of the box. When i run the application, all of the frontend will load however, any requests to the api's etc will 404 stating that it cannot find the url.
Message in Chrome console: "Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment..."
My application runs on a different port everytime I execute the "dotnet run" command. Is this supposed to be the case ? Whichever port is generated, this will be the problematic one.
I have to manually change to port 5001 for anything to function correctly (although this comes with annoying security prompts.)
I am using visual studio code for this project. The funny thing is, if i run this project via visual studio (not code) i get a consistent static port number that will function as intended (this also comes with annoying security prompts) so i have to assume its this random port number that vscode is generating ?
Im honestly not to familiar with this so I could be way off admittedly. Any help or advice would be appreaciated. I'd post code snippets if I knew where to start.
PS, I know that I can of course just not run it with VSCode and just stick to Visual Studio. I'd rather understand the issue than ignore it though.
Thanks, in advance.

What can cause a display bug on different devices in a meteor web app and only once bundled

My problem is that my content does not show at all on particular device/browser and only once bundled. The wep app display correctly in debug (running it from meteor) whatever the device or browser are.
EDIT : I can see the navbar and the footer but not the yield on affected devices/browsers
Affected devices/browser known to date are Chrome on Nexus 4 (not on Note3) and Dolphin on Note 3.
Dev environment is Windows and prod is Linux.
I've also tried to run the app through meteor directly on server and the problem is not here but is back even when I bundle the app from the server.
Any idea about what can cause that and/or how to troubleshoot that?
EDIT 2
I can finally confirm that it's a client side bug.
Here is the error from chrome console on the device
Exception from Deps recompute function: ReferenceError: Lists is not defined
at Object.Template.layout.helpers.lists (http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:31:25567)
at http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:10:5624
at Object.e.call (http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:27:20793)
at HTML.DIV.HTML.UL.UI.Each.UI.block.e [as __sequence] (http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:27:28178)
at http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:10:4102
at http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:9:3419
at a (http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:2:4791)
at n.extend._compute (http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:2:5846)
at new e.Computation (http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:2:5183)
at Object.n.extend.autorun (http://example.com/8f6c9295e0ef7b38e613447d9a44d5c7af448efa.js:2:7042)
But the Lists collection is defined, published and subscribed. And the weirdest part is that everything works well when debugging through Meteor
In my specific case, Collections definitions were located in a /collections folder at the root of the app. That caused the app to load them after the /client folder but only once deployed and on some devices/browsers only!
To fix that, I've just move the /collections folder into /lib, bundled it again, push it to the server and everything now works flawlessly whatever the device/browser is.