Comments (5)
Hey @robertotcestari, I reopened the issue; definitively we have to take a look!
from edge-runtime.
I ran the code now with edgeVM
, and works as expected.
The only place where is not working is in production code, deployed at vercel edge.
if you want to check the bug in production:
https://og.codante.io/api/test/first-segment/second-segment
from edge-runtime.
Hello, I'm not seeing how .getAll('name')
is going to return ['first-segment','second-segment']
to you.
Using Node.js repl:
> new URL('https://og.codante.io/api/test/first-segment/second-segment').searchParams.getAll('name')
[]
They should be query parameters rather than part of the URL, like in this way:
new URL('https://og.codante.io/api/test?name=first-segment&name=second-segment').searchParams.getAll('name')
[ 'first-segment', 'second-segment' ]
Please correct me if I'm wrong; happy to re-open the issue if needed.
from edge-runtime.
Hello @Kikobeats,
When i have a catch all route, NextJS injects the segments into req.url
as query params when using edge runtime, so we can access it on API routes.
Sorry if i wasn't clear, but I am sure that this problem is a bug. Local and edge production environment are getting different results with the exact same code.
Please take a look at the code and the production result of both cases (as per the documentation example)
Edge Runtime (bug): https://og.codante.io/api/edge/first/second -
Node: https://og.codante.io/api/node/first/second
Below is the code that is running in production (link here):
export const config = {
runtime: 'edge',
};
export default function handler(req) {
const { searchParams } = new URL(req.url);
const allSegments = searchParams.getAll('name');
return new Response(JSON.stringify({ allSegments }), { status: 200 });
}
from edge-runtime.
Hello @Kikobeats any chance reopening this?
When we run this in node:
new URL('https://og.codante.io/api/test?name=first-segment&name=second-segment').searchParams.getAll('name')
we get the expected output.
But when we run the same code in edge-runtime (production nextjs deployment @vercel ), the result is not the expected.
Please check this live:
Edge Runtime (bug): og.codante.io/api/edge/first/second -
Node: og.codante.io/api/node/first/second
from edge-runtime.
Related Issues (20)
- Expose cookie serialization functions. HOT 1
- Include a key in process.versions for detecting edge runtime HOT 2
- Support `has` in ResponseCookies
- Set-Cookie headers are merged when using `fetch` HOT 6
- Primitives: event-target-shim causes issues w/ edge-runtime running on top of node HOT 3
- drop node16 support
- Proxying primitive instances return anonymous `toString()` return functions
- Why cannot my `fetch` API work in edge function? HOT 4
- 🙏`fetch` api doesn't work in edge function HOT 4
- Which functions and APIs advance the value returned by `Date.now`? HOT 3
- Polyfill for btoa inconsistent with WebApi / Node HOT 5
- drop node18 support
- Response.redirect() fails to parse some URLs in production which parse successfully in local runtime HOT 2
- `@edge-runtime/node-utils` can't start example server from docs using `primitives` (node v18.18.2) Headers2 is not a constructor HOT 1
- Secure Cookies can't be deleted from Responses
- CompressionStream / DecompressionStream support?
- failing on buffer
- Does Edge Runtime use alternative vm instead of node:vm? HOT 3
- crypto.subtle.importKey does not accept ArrayBuffer (ArrayBuffer.prototype mismatch) HOT 1
- Cannot use @edge-runtime/jest-environment
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from edge-runtime.