-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathshow me how to access a postgres server from a nodejs server - Brave Search.html
More file actions
494 lines (380 loc) · 263 KB
/
show me how to access a postgres server from a nodejs server - Brave Search.html
File metadata and controls
494 lines (380 loc) · 263 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
<!DOCTYPE html>
<!-- saved from url=(0151)https://search.brave.com/search?q=show+me+how+to+access+a+postgres+server+from+a+nodejs+server&source=web&summary=1&conversation=a4e955171c4fc22f74361a -->
<html class="no-js " lang="en-us"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="https://cdn.search.brave.com/" rel="preconnect" crossorigin="anonymous">
<link href="https://imgs.search.brave.com/" rel="preconnect" crossorigin="anonymous">
<link href="https://tiles.search.com/" rel="preconnect" crossorigin="anonymous">
<link rel="preload" as="font" type="font/woff2" href="https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-latin-400-normal.BOOGhInR.woff2" crossorigin="">
<link rel="preload" as="font" type="font/woff2" href="https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-latin-600-normal.D273HNI0.woff2" crossorigin="">
<link rel="preload" as="font" type="font/woff2" href="https://cdn.search.brave.com/serp/v2/_app/immutable/assets/poppins-latin-400-normal.cpxAROuN.woff2" crossorigin="">
<link rel="preload" as="font" type="font/woff2" href="https://cdn.search.brave.com/serp/v2/_app/immutable/assets/poppins-latin-600-normal.zEkxB9Mr.woff2" crossorigin="">
<style>footer.svelte-elswzx.svelte-elswzx{background:var(--color-container-background);border-top:1px solid var(--color-divider-subtle);color:var(--color-text-primary);height:-moz-fit-content;height:fit-content;margin-top:2rem;padding:2rem 0px}footer.svelte-elswzx .content.svelte-elswzx{align-items:baseline;align-items:flex-start;-moz-column-gap:var(--spacing-2xl);column-gap:var(--spacing-2xl);display:flex;flex-wrap:wrap;justify-content:space-between}footer.svelte-elswzx .content .block.svelte-elswzx{margin-bottom:1rem}footer.svelte-elswzx .content .block a.svelte-elswzx{color:var(--color-text-tertiary)!important}footer.svelte-elswzx .content .block .grid-2-col.svelte-elswzx{display:grid;gap:var(--spacing-xs) var(--spacing-3xl);grid-template-columns:repeat(2,1fr)}footer.svelte-elswzx .content .header.svelte-elswzx{color:var(--color-text-secondary);font-family:var(--brand-font);margin-bottom:var(--spacing-m-2)}footer.svelte-elswzx .flex-col.svelte-elswzx{display:flex;flex-direction:column;gap:var(--spacing-xs)}@media (max-width: 599px){.content.svelte-elswzx.svelte-elswzx{padding:0 var(--spacing-xl);flex-direction:column}}
.column-layout.svelte-bd1r44.svelte-bd1r44{display:flex;flex-direction:column;-moz-column-gap:var(--main-gap);column-gap:var(--main-gap);max-width:min(100%,1400px);padding-left:var(--main-content-padding);padding-right:var(--base-padding);scrollbar-gutter:stable;overflow:auto}.column-layout.overflow-visible.svelte-bd1r44.svelte-bd1r44{overflow:visible}.column-layout.svelte-bd1r44 .cols.svelte-bd1r44{-moz-column-gap:var(--main-gap);column-gap:var(--main-gap);display:flex;max-width:100%;row-gap:var(--spacing-xl);scrollbar-gutter:stable}.column-layout.fullheight.svelte-bd1r44.svelte-bd1r44{min-height:calc(100vh - 300px)}.main-column.svelte-bd1r44.svelte-bd1r44{margin-top:0;position:relative;width:100%}.main-column.svelte-bd1r44 #floating-infobox-anchor{position:absolute;right:calc(-1 * var(--main-gap));top:0}.column-layout.has-sidebar.svelte-bd1r44 .main-column.svelte-bd1r44,.column-layout.svelte-bd1r44:not(.fluid) .main-column.svelte-bd1r44{max-width:var(--main-column-width)}.sidebar.svelte-bd1r44.svelte-bd1r44{min-width:var(--sidebar-width);max-width:var(--sidebar-width);padding:var(--spacing-2xl);overflow:hidden;order:0}.sidebar.svelte-bd1r44.svelte-bd1r44:empty,.sidebar.svelte-bd1r44.svelte-bd1r44:not(:has(*)){display:none}@media (min-width: 2300px){.column-layout.svelte-bd1r44.svelte-bd1r44{margin:auto;max-width:var(--max-content-width);overflow:visible;padding-left:0;padding-right:0;width:100%}}@media (max-width: 885px){.column-layout.svelte-bd1r44.svelte-bd1r44{padding-left:var(--base-padding)}}@media (max-width: 599px){.column-layout.svelte-bd1r44.svelte-bd1r44:not(.has-sidebar),.column-layout.has-sidebar.svelte-bd1r44.svelte-bd1r44{padding-left:0;padding-right:0}}.is-mobile .column-layout.has-sidebar.svelte-bd1r44 .cols.svelte-bd1r44{flex-direction:column}.is-mobile .column-layout.has-sidebar.svelte-bd1r44 .sidebar.svelte-bd1r44{max-width:var(--main-column-width);width:100%;padding:0}.is-mobile .column-layout.svelte-bd1r44:not(.has-sidebar) .main-column.svelte-bd1r44{max-width:100%}.is-mobile .main-column.svelte-bd1r44.svelte-bd1r44:not(.has-priority){order:1}
.settings-button.svelte-1u7wgmq.svelte-1u7wgmq{align-items:center;border-radius:var(--border-radius-s);border:1px solid transparent;display:flex;padding:var(--spacing-s)}.settings-button.svelte-1u7wgmq.svelte-1u7wgmq:active{background-color:var(--color-serp-container-interactive)}.settings-button.active.svelte-1u7wgmq.svelte-1u7wgmq{background-color:var(--color-serp-container-interactive);border:1px solid var(--color-divider-interactive)}.settings-button.active.svelte-1u7wgmq .icon{color:var(--color-icon-interactive)}.settings-button.svelte-1u7wgmq .icon{--size:var(--icon-s);color:var(--color-icon-default)}.settings-button.noscript-block.svelte-1u7wgmq.svelte-1u7wgmq{display:none}.settings.svelte-1u7wgmq.svelte-1u7wgmq{align-items:center;display:flex;position:relative}.settings-premium-badge.svelte-1u7wgmq.svelte-1u7wgmq{--size:var(--icon-s);background:none;margin-right:var(--spacing-l);padding:0}.settings-content.svelte-1u7wgmq.svelte-1u7wgmq{background:var(--color-serp-settings-background);display:flex;flex-direction:column;gap:var(--spacing-2xl);padding:var(--spacing-2xl)}.settings-header.svelte-1u7wgmq.svelte-1u7wgmq{margin:0;padding:0 var(--spacing-xl)}.settings-all.svelte-1u7wgmq.svelte-1u7wgmq{background:var(--color-serp-settings-background);padding:0 var(--spacing-2xl) var(--spacing-2xl);padding-top:0}.settings-content.is-contextmenu-mobile.svelte-1u7wgmq.svelte-1u7wgmq{padding:0 var(--spacing-l)}.settings-content.is-contextmenu-mobile.svelte-1u7wgmq .settings-header.svelte-1u7wgmq{display:none}.settings-all.is-contextmenu-mobile.svelte-1u7wgmq.svelte-1u7wgmq{bottom:0;padding:var(--spacing-xl);position:sticky}#settings-contextmenu.is-mobile .contextmenu-mobile-header-title{margin-left:var(--spacing-s)}#settings-contextmenu:not(.is-mobile){border-radius:var(--border-radius-xl)!important}
.contextmenu.svelte-19g601x{border:1px solid var(--color-divider-subtle);box-shadow:var(--elevation-05);box-sizing:border-box;left:0;overflow-x:hidden;overflow-y:auto;top:0;width:-moz-max-content;width:max-content;z-index:1000}.contextmenu.svelte-19g601x:empty,.contextmenu.svelte-19g601x:not(:has(*)){display:none}.contextmenu.absolute.svelte-19g601x{position:absolute}.contextmenu.fixed.svelte-19g601x{position:fixed}.contextmenu.transitioning.svelte-19g601x{pointer-events:none}.contextmenu.is-mobile.svelte-19g601x{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;border:none;bottom:0;left:0;max-width:100vw;min-width:100vw;position:fixed;right:0;top:auto;width:100vw;z-index:10000}.contextmenu-backdrop.svelte-19g601x{bottom:0;height:100%;left:0;position:fixed;right:0;top:0;width:100%;z-index:9999}.contextmenu-mobile-header-wrapper.svelte-19g601x{position:sticky;top:0;z-index:1}.contextmenu-mobile-header.svelte-19g601x{align-items:center;background:var(--color-container-background);display:flex;gap:var(--spacing-m);justify-content:space-between;padding:var(--spacing-2xl)}.contextmenu-mobile-header.border.svelte-19g601x{border-bottom:1px solid var(--color-divider-subtle)}.contextmenu-mobile-header-title.svelte-19g601x{align-items:center;display:flex;gap:var(--spacing-m);justify-content:center}.contextmenu-mobile-header-title.svelte-19g601x .icon{--size:var(--icon-l);color:var(--color-icon-default)}
.brave-supporter.svelte-12n6n9d{align-items:center;background:var(--color-page-background);border-radius:var(--border-radius-m);border:1px solid var(--color-divider-subtle);-moz-column-gap:var(--spacing-xl);column-gap:var(--spacing-xl);display:flex;flex-wrap:wrap;justify-content:space-evenly;padding:var(--spacing-xl)}.is-mobile .brave-supporter.svelte-12n6n9d{justify-content:center}h2.svelte-12n6n9d{align-items:center;color:var(--color-text-primary);display:flex;font-size:16px;font-weight:600;line-height:32px;margin-bottom:0;min-width:-moz-fit-content;min-width:fit-content}.premium-icon.svelte-12n6n9d{align-items:center;display:flex;flex-shrink:0;margin-right:7px}section.svelte-1j58eib.svelte-1j58eib{align-items:center;-moz-column-gap:var(--spacing-xl);column-gap:var(--spacing-xl);display:flex;justify-content:space-between;padding:var(--spacing-xl) 0;row-gap:var(--spacing-l)}.control.svelte-1j58eib.svelte-1j58eib{max-width:140px}section.layout-column.svelte-1j58eib.svelte-1j58eib,.is-mobile section.svelte-1j58eib.svelte-1j58eib{align-items:flex-start;flex-direction:column;gap:var(--spacing-m)}section.layout-column.svelte-1j58eib .control.svelte-1j58eib,.is-mobile .control.svelte-1j58eib.svelte-1j58eib{max-width:none;width:100%}section.layout-column.svelte-1j58eib .control.svelte-1j58eib{padding-left:calc(30px + var(--spacing-xl))}section.layout-row.svelte-1j58eib.svelte-1j58eib{align-items:center;flex-direction:row}section.layout-row.svelte-1j58eib .control.svelte-1j58eib{max-width:140px;width:auto}.extra.svelte-1j58eib.svelte-1j58eib{margin-top:calc(-1 * var(--spacing-s));padding-bottom:var(--spacing-xl);padding-left:calc(30px + var(--spacing-xl))}.extra.svelte-1j58eib.svelte-1j58eib:empty{display:none}.is-mobile .extra.svelte-1j58eib.svelte-1j58eib{padding-left:0}.section-divider.svelte-1j58eib.svelte-1j58eib{border-bottom:1px solid var(--color-divider-subtle);margin-left:calc(30px + var(--spacing-xl))}.is-mobile .section-divider.svelte-1j58eib.svelte-1j58eib{border:none;margin-top:calc(-1 * var(--spacing-m))}section.svelte-1j58eib:last-of-type~.section-divider.svelte-1j58eib{display:none}.info.svelte-1j58eib.svelte-1j58eib{-moz-column-gap:var(--spacing-xl);column-gap:var(--spacing-xl);display:flex;flex-direction:row;justify-content:space-between;row-gap:var(--spacing-l);align-items:center}.icon.svelte-1j58eib.svelte-1j58eib{align-items:center;background:var(--color-container-interactive);border-radius:var(--border-radius-full);color:var(--color-primary-50);display:flex;height:30px;justify-content:center;width:30px}.icon.svelte-1j58eib .icon{--size:14px}.text.svelte-1j58eib.svelte-1j58eib{flex:1}@media (prefers-color-scheme: dark){:root:not(.light) .icon.svelte-1j58eib.svelte-1j58eib{background:#7c91ff33}}:root.dark .icon.svelte-1j58eib.svelte-1j58eib{background:#7c91ff33}form.select.svelte-1n25cr7,.is-mobile form.switch.svelte-1n25cr7{display:none}.is-mobile form.select.svelte-1n25cr7{display:block}.slider.svelte-vfxill{background:var(--color-container-highlight);border-radius:var(--border-radius-l);display:flex;flex-wrap:nowrap;padding:var(--spacing-s);gap:var(--spacing-s)}button.svelte-vfxill{align-items:center;background:none;border-radius:var(--border-radius-m);color:var(--color-icon-default);display:flex;height:28px;justify-content:center;max-height:28px;max-width:28px;min-height:28px;min-width:28px;padding:var(--spacing-m);transition:background .2s,box-shadow .2s,color .2s;width:28px}button.svelte-vfxill .icon{--size:var(--icon-s)}button.svelte-vfxill:hover{background:var(--color-container-background)}button.active.svelte-vfxill{background:var(--color-container-background);box-shadow:var(--elevation-01);color:var(--color-text-interactive)}form.svelte-5vp7zy{min-width:140px}h3.svelte-9ouv38{padding:0 var(--spacing-xl);margin:0 0 var(--spacing-s) 0}.card.svelte-9ouv38{background:var(--color-container-background);border-radius:var(--border-radius-l);padding:0 var(--spacing-xl)}.is-mobile .card.headerless.svelte-9ouv38{margin-top:calc(-1 * var(--spacing-m))}
.form-select.svelte-muxi1n{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:url(data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M12.566%2015.316a.8.8%200%200%201-1.132%200l-5.5-5.5a.8.8%200%201%201%201.132-1.132L12%2013.62l4.934-4.935a.8.8%200%201%201%201.132%201.132z%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%2362757e%22%20%2F%3E%3C%2Fsvg%3E) no-repeat right var(--spacing-s) center/1rem!important;background-color:var(--color-container-highlight)!important;border-radius:var(--border-radius-m);border:none;color:var(--color-text-primary);cursor:pointer;font-family:var(--brand-font);font-size:var(--text-sm);height:1.8rem;line-height:1.2rem;outline:0;padding-left:var(--spacing-m);padding-right:1.4rem;text-overflow:ellipsis;white-space:nowrap;width:100%}
.form-switch.svelte-15p1eh9.svelte-15p1eh9.svelte-15p1eh9{--switch-off-border-color:var(--color-schemes-outline);--switch-off-background-color:var(--color-schemes-surface-container-high);--switch-off-dot-background-color:var(--color-schemes-outline);--switch-off-dot-border-color:var(--color-schemes-surface-container-high);--switch-off-hover-background-color:color-mix( in srgb, var(--switch-off-background-color), #000 20% );--switch-on-border-color:var(--color-schemes-primary);--switch-on-background-color:var(--color-schemes-primary);--switch-on-dot-background-color:var(--color-schemes-on-primary);--switch-on-dot-border-color:var(--color-schemes-on-primary);--switch-on-hover-background-color:color-mix( in srgb, var(--switch-on-background-color), #000 20% );align-items:center;cursor:pointer;display:flex;gap:var(--spacing-xl);line-height:unset;margin:0;min-height:unset;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.form-switch.size--small.svelte-15p1eh9.svelte-15p1eh9.svelte-15p1eh9{--switch-border-width:2px;--switch-height:24px;--switch-width:40px;--switch-padding:2px;--dot-size-on:16px;--dot-size-off:12px}.form-switch.size--tiny.svelte-15p1eh9.svelte-15p1eh9.svelte-15p1eh9{--switch-border-width:1px;--switch-height:16px;--switch-width:26px;--switch-padding:2px;--dot-size-on:14px;--dot-size-off:8px}.form-switch.svelte-15p1eh9 input.svelte-15p1eh9.svelte-15p1eh9{clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;position:absolute;width:1px}.form-switch.disabled.svelte-15p1eh9.svelte-15p1eh9.svelte-15p1eh9{opacity:.5;pointer-events:none}.form-icon.svelte-15p1eh9.svelte-15p1eh9.svelte-15p1eh9{background:var(--switch-off-background-color);border:var(--switch-border-width) solid var(--switch-off-border-color);border-radius:var(--border-radius-full);flex-shrink:0;height:var(--switch-height);overflow:hidden;position:relative;top:0;width:var(--switch-width)}.form-switch.svelte-15p1eh9:hover .form-icon.svelte-15p1eh9.svelte-15p1eh9{background:var(--switch-off-hover-background-color)}.form-switch.svelte-15p1eh9 input.svelte-15p1eh9:checked+.form-icon.svelte-15p1eh9,.form-switch.svelte-15p1eh9 input.svelte-15p1eh9:checked:focus+.form-icon.svelte-15p1eh9,.form-switch.svelte-15p1eh9 input.svelte-15p1eh9:checked:active+.form-icon.svelte-15p1eh9{background:var(--switch-on-background-color);border-color:var(--switch-on-border-color)}.form-switch.svelte-15p1eh9:hover input.svelte-15p1eh9:checked+.form-icon.svelte-15p1eh9{background:var(--switch-on-hover-background-color);border-color:var(--switch-on-hover-background-color)}.form-switch.svelte-15p1eh9 input.svelte-15p1eh9:focus-visible+.form-icon.svelte-15p1eh9{box-shadow:var(--focus-visible)}.form-switch.svelte-15p1eh9 .form-icon.svelte-15p1eh9.svelte-15p1eh9:before{background:var(--switch-off-dot-background-color);border-radius:var(--border-radius-full);content:"";display:block;height:var(--dot-size-off);left:calc(2 * var(--switch-padding));position:absolute;top:50%;transform:translateY(-50%);transition:left .2s ease-out;width:var(--dot-size-off)}.form-switch.svelte-15p1eh9 input.svelte-15p1eh9:checked+.form-icon.svelte-15p1eh9:before{left:calc(100% - var(--dot-size-on) - var(--switch-padding));background:var(--switch-on-dot-background-color);height:var(--dot-size-on);width:var(--dot-size-on)}
.feedback-form.svelte-ybor82.svelte-ybor82{display:contents}.feedback-card.svelte-ybor82.svelte-ybor82{background:var(--color-container-background);border-radius:var(--border-radius-l);display:flex;flex-direction:column;gap:var(--spacing-xl);padding:var(--spacing-xl)}.form-group.svelte-ybor82.svelte-ybor82{display:flex;flex-direction:column;gap:var(--spacing-m);width:100%}.form-radio.svelte-ybor82.svelte-ybor82{align-items:center;display:flex;gap:var(--spacing-m)}.form-radio.svelte-ybor82.svelte-ybor82:hover{cursor:pointer}textarea.svelte-ybor82.svelte-ybor82{background-color:var(--color-page-background);border-radius:var(--border-radius-m);border:solid 1px var(--color-divider-subtle);color:var(--color-text-primary);height:75px;padding:var(--spacing-m);resize:vertical;width:100%}.feedback-form.is-contextmenu-mobile.svelte-ybor82 .feedback-card.svelte-ybor82{padding:0}.feedback-modal-logo.svelte-3m2vn7{align-items:center;display:flex;justify-content:center;padding-bottom:var(--spacing-2xl);width:100%}.feedback-body.svelte-7l647i{display:flex;flex-direction:column;gap:var(--spacing-2xl);padding:0 var(--spacing-2xl) var(--spacing-2xl)}.feedback-body.is-contextmenu-mobile.svelte-7l647i{padding:var(--spacing-2xl)}
dialog.svelte-1wwsumg{border-radius:var(--border-radius-xl);border:none;box-shadow:var(--elevation-05)!important;color:inherit;padding:0}dialog.svelte-1wwsumg::backdrop{animation:svelte-1wwsumg-backdrop-fade .15s ease-out forwards;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);background:var(--color-dialogs-scrim-background)}.modal-header-wrapper.svelte-1wwsumg{position:sticky;top:0;z-index:1}.modal-header.svelte-1wwsumg{align-items:center;display:flex;gap:var(--spacing-m);justify-content:space-between;padding:var(--spacing-2xl)}.modal-header.border.svelte-1wwsumg{border-bottom:1px solid var(--color-divider-subtle)}.modal-header-title.svelte-1wwsumg{align-items:center;display:flex;gap:var(--spacing-m);justify-content:center}.modal-header-title.svelte-1wwsumg .icon{--size:var(--icon-l);color:var(--color-icon-default)}@keyframes svelte-1wwsumg-backdrop-fade{0%{-webkit-backdrop-filter:none;backdrop-filter:none;background:transparent}to{-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);background:var(--color-dialogs-scrim-background)}}
.contextmenu-pane.svelte-1vw9885{border-top-left-radius:var(--border-radius-xl);border-top-right-radius:var(--border-radius-xl);bottom:0;left:0;max-width:100vw;min-width:100vw;overflow-x:hidden;overflow-y:auto;position:fixed;right:0;top:auto;width:100vw;z-index:10001}.contextmenu-pane-header-wrapper.svelte-1vw9885{position:sticky;top:0;z-index:1}.contextmenu-pane-header.svelte-1vw9885{align-items:center;background:var(--color-container-background);display:flex;justify-content:space-between;padding:var(--spacing-2xl)}.contextmenu-pane-header.border.svelte-1vw9885{border-bottom:1px solid var(--color-divider-subtle)}.contextmenu-pane-header-title.svelte-1vw9885{align-items:center;display:flex;gap:var(--spacing-xl);justify-content:center}.contextmenu-pane-header-title.svelte-1vw9885 .icon{--size:var(--icon-l);color:var(--color-icon-default)}
.size-s.svelte-w8qrqh{--size:var(--icon-s)}.size-xs.svelte-w8qrqh{--size:var(--icon-xs)}.size-2xs.svelte-w8qrqh{--size:var(--icon-2xs)}.size-3xs.svelte-w8qrqh{--size:var(--icon-3xs)}img.favicon.svelte-w8qrqh{height:var(--size);width:var(--size);-o-object-fit:cover;object-fit:cover;border-radius:var(--border-radius-xs);text-align:center;overflow:hidden;position:relative;display:inline-block;flex-shrink:0}.favicon.error.svelte-w8qrqh{padding:1px;content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDIwIDIwIj48ZGVmcy8+PHBhdGggZmlsbD0iIzY4NzM4MSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMS42NjQgNy44NzdBOC42MTcgOC42MTcgMCAwMDEuNCAxMGMwIC43MzMuMDkyIDEuNDQ0LjI2NCAyLjEyM2g0LjQzOEEyMS45NDkgMjEuOTQ5IDAgMDE2IDEwYzAtLjczLjAzNS0xLjQ0LjEwMi0yLjEyM0gxLjY2NHptLjQ4OC0xLjRoNC4xMzZjLjM2LTIuMTE1IDEuMDM2LTMuODUgMS44ODktNC44ODNhOC42MTYgOC42MTYgMCAwMC02LjAyNSA0Ljg4M3ptNS4zNTcgMS40QTIwLjQ3IDIwLjQ3IDAgMDA3LjQgMTBjMCAuNzM4LjAzOCAxLjQ0OS4xMDkgMi4xMjNoNC45ODJjLjA3LS42NzQuMTA5LTEuMzg1LjEwOS0yLjEyMyAwLS43MzgtLjAzOC0xLjQ0OS0uMTA5LTIuMTIzSDcuNTF6bTQuNzgxLTEuNEg3LjcxYy4xODQtLjk5OC40NDMtMS44ODEuNzUtMi42MDcuMzItLjc1Mi42NjItMS4yNy45NzItMS41OC4zMDQtLjMwMy40OTUtLjMzMi41NjgtLjMzMi4wNzMgMCAuMjY0LjAyOS41NjguMzMzLjMxLjMxLjY1My44MjcuOTcxIDEuNTc5LjMwOC43MjYuNTY2IDEuNjA5Ljc1MSAyLjYwN3ptMS42MDkgMS40QzEzLjk2NSA4LjU2IDE0IDkuMjcgMTQgMTBjMCAuNzMtLjAzNSAxLjQ0LS4xMDEgMi4xMjNoNC40MzdjLjE3Mi0uNjguMjY0LTEuMzkuMjY0LTIuMTIzIDAtLjczMy0uMDkyLTEuNDQ0LS4yNjQtMi4xMjNoLTQuNDM3em0zLjk0OS0xLjRoLTQuMTM2Yy0uMzYtMi4xMTUtMS4wMzYtMy44NS0xLjg4OS00Ljg4M2E4LjYxNiA4LjYxNiAwIDAxNi4wMjUgNC44ODN6bS05LjY3MSAxMS45M2E4LjYxNiA4LjYxNiAwIDAxLTYuMDI1LTQuODg0aDQuMTM2Yy4zNiAyLjExNSAxLjAzNiAzLjg1IDEuODg5IDQuODgzem0uMjg0LTIuMjc3Yy0uMzA4LS43MjYtLjU2Ny0xLjYwOS0uNzUxLTIuNjA3aDQuNThjLS4xODQuOTk4LS40NDMgMS44ODEtLjc1IDIuNjA3LS4zMi43NTItLjY2MiAxLjI3LS45NzIgMS41OC0uMzA0LjMwMy0uNDk1LjMzMi0uNTY4LjMzMi0uMDczIDAtLjI2NC0uMDMtLjU2OC0uMzMzLS4zMS0uMzEtLjY1My0uODI3LS45NzEtMS41Nzl6bTMuMzYyIDIuMjc2Yy44NTMtMS4wMzMgMS41MjktMi43NjggMS44OS00Ljg4M2g0LjEzNWE4LjYxNiA4LjYxNiAwIDAxLTYuMDI1IDQuODgzek0wIDEwQzAgNC40NzcgNC40NzcgMCAxMCAwczEwIDQuNDc3IDEwIDEwLTQuNDc3IDEwLTEwIDEwUzAgMTUuNTIzIDAgMTB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}
.badge.svelte-rpk92f.svelte-rpk92f{width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-s)}.badge.boosted.svelte-rpk92f.svelte-rpk92f{background-color:var(--color-systemfeedback-success-background);color:var(--color-systemfeedback-success-text)}.badge.downranked.svelte-rpk92f.svelte-rpk92f{background-color:var(--color-systemfeedback-error-background);color:var(--color-systemfeedback-error-text)}.badge.downranked.svelte-rpk92f svg.svelte-rpk92f{transform:rotate(180deg)}
#map-loading.svelte-1sms2ej{position:fixed;left:0;width:100vw;top:0;height:100vh;background-color:var(--color-container-background);z-index:5001;display:flex;justify-content:center;align-items:center;--size:30px}#infobox-snippet:has(.hide-snippet){display:none}
.debug-icon.svelte-1fieupg{position:absolute;top:1.2rem;right:0;z-index:2;background:var(--color-container-background);color:var(--color-icon-default);border-radius:var(--border-radius-m);width:-moz-fit-content;width:fit-content}.debug-icon.svelte-1fieupg:hover{background:var(--color-container-highlight)}.snippet.svelte-n9nog2{background-color:var(--color-serp-snippet-background);position:relative;transition:opacity .2s ease-in-out;margin:var(--spacing-4xl) 0}.snippet.svelte-n9nog2:after{content:"";display:block;clear:both}.snippet.standalone.svelte-n9nog2{margin:var(--spacing-6xl) 0}.snippet.noscript-hide:first-child+.snippet.svelte-n9nog2{margin-top:0}.snippet.no-bg.svelte-n9nog2{background-color:transparent}.snippet.no-border.svelte-n9nog2{border-color:transparent}.snippet.no-padding.svelte-n9nog2{padding:0}.snippet.svelte-n9nog2:first-child{margin-top:0}.snippet.svelte-n9nog2:last-child{margin-bottom:0}
#debug.svelte-1bo29mo.svelte-1bo29mo{position:absolute;bottom:.5rem;right:.5rem;border-radius:var(--border-radius-large);box-shadow:var(--shadow-3);background-color:#1a1a1aaa;color:#acacac;padding:.5rem;width:300px;font-size:var(--text-sm-2);z-index:2}button.svelte-1bo29mo.svelte-1bo29mo{display:none;float:right}.controls.svelte-1bo29mo.svelte-1bo29mo{display:flex;flex-direction:column;gap:var(--spacing-s)}.divider.svelte-1bo29mo.svelte-1bo29mo{border-top:.05rem solid #333}.visual.svelte-1bo29mo.svelte-1bo29mo{width:100%;height:100px;border:solid 1px #444;border-radius:var(--border-radius-m);position:relative;background-color:#222}.visual.svelte-1bo29mo .nw.svelte-1bo29mo{position:absolute;top:5px;left:5px}.visual.svelte-1bo29mo .sw.svelte-1bo29mo{position:absolute;bottom:5px;left:5px}.visual.svelte-1bo29mo .sw .vis.svelte-1bo29mo{bottom:-10px;left:-10px}.visual.svelte-1bo29mo .ne.svelte-1bo29mo{position:absolute;top:5px;right:5px}.visual.svelte-1bo29mo .ne .vis.svelte-1bo29mo{top:-10px;right:-10px}.control.svelte-1bo29mo.svelte-1bo29mo{display:flex;gap:.5rem;align-items:center}.visual.svelte-1bo29mo .coords.svelte-1bo29mo{background-color:#1a1a1a;padding:.05rem .25rem;border:solid 1px #444;border-radius:var(--border-radius-m)}.visual.svelte-1bo29mo .center.svelte-1bo29mo{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.visual.svelte-1bo29mo .vis.svelte-1bo29mo{border-radius:5px;border:solid 5px gray;width:10px;position:absolute;top:inherit;right:inherit;bottom:inherit;left:inherit}@media (max-width: 850px){button.svelte-1bo29mo.svelte-1bo29mo{display:block}#debug.svelte-1bo29mo.svelte-1bo29mo:not(.expanded){width:-moz-min-content;width:min-content}#debug.svelte-1bo29mo:not(.expanded) .content.svelte-1bo29mo{display:none}}.is-mobile #debug.svelte-1bo29mo.svelte-1bo29mo{top:.5rem;left:.5rem;bottom:unset;right:unset}@media (orientation: landscape){.is-mobile #debug.svelte-1bo29mo.svelte-1bo29mo{right:.5rem;bottom:.5rem;top:unset;left:unset}}form.svelte-6htl19.svelte-6htl19{display:contents}nav.svelte-6htl19.svelte-6htl19{display:flex;flex-direction:row;gap:var(--spacing-m);align-items:center;width:100%}nav.svelte-6htl19 .query-container.svelte-6htl19{background-color:var(--color-neutral-10);border-radius:var(--border-radius-xl);display:flex;flex-direction:row;align-items:center;padding:0 var(--spacing-l);flex:1}nav.svelte-6htl19 .query-container input.svelte-6htl19{border:none;flex:1;flex-grow:1;outline:none;box-shadow:none;font-size:16px;background-color:transparent}nav.svelte-6htl19 .query-container input.svelte-6htl19:hover{border:none}nav.svelte-6htl19 .query-container input.svelte-6htl19:focus{border:none;outline:none}nav.svelte-6htl19 .query-container button.hidden.svelte-6htl19{position:absolute;left:-9999px}nav.svelte-6htl19 .query-container.svelte-6htl19 button{flex-shrink:0}nav.svelte-6htl19.svelte-6htl19:hover{border-color:var(--color-text-primary)}#chosen-result.svelte-vn8dv5{background:var(--color-container-background);border-radius:var(--border-radius-m);box-shadow:var(--elevation-01);width:100%;scrollbar-width:thin;scrollbar-color:var(--color-text-tertiary) transparent}#chosen-result.svelte-vn8dv5 .place{padding-top:0}#chosen-result.svelte-vn8dv5 .place #infobox>header{padding-top:var(--spacing-2xl)}#chosen-result.svelte-vn8dv5::-webkit-scrollbar{width:6px}#chosen-result.svelte-vn8dv5::-webkit-scrollbar-track{background:transparent}#chosen-result.svelte-vn8dv5::-webkit-scrollbar-thumb{background-color:var(--color-text-tertiary);border-radius:20px;border:3px solid var(--color-text-tertiary)}#chosen-result.error.svelte-vn8dv5{width:100%;box-shadow:none;padding:var(--spacing-2xl);display:flex;align-items:center;justify-content:center}#error-container.svelte-vn8dv5{width:100%;height:-moz-fit-content;height:fit-content}.is-mobile #chosen-result.svelte-vn8dv5{box-shadow:none;border-radius:0}
.error-state.svelte-re8e3c.svelte-re8e3c{align-items:center;border-radius:var(--border-radius-m);border:1px solid var(--color-divider-subtle);display:flex;flex-direction:column;gap:var(--spacing-s);height:100%;justify-content:center;padding:var(--spacing-m) var(--spacing-xl);width:100%}.error-state-title.svelte-re8e3c.svelte-re8e3c{align-items:center;display:flex;gap:var(--spacing-s)}.error-state-title.svelte-re8e3c .icon-wrapper.svelte-re8e3c{--size:var(--icon-s);color:var(--color-gray-30);flex-shrink:0;padding:0}.error-state-spacer.svelte-re8e3c.svelte-re8e3c{margin:var(--spacing-xs) 0}
.label.svelte-rr76mm.svelte-rr76mm{background-color:var(--color-red-10);color:var(--color-red-40);padding-block:var(--spacing-xs);padding-inline-start:var(--spacing-s);padding-inline-end:var(--spacing-m);border-radius:var(--border-radius-s);display:flex;align-items:center;gap:var(--spacing-s);height:1rem}.label.svelte-rr76mm .indicator-outer.svelte-rr76mm{width:8px;height:8px;border-radius:100%;display:flex;align-items:center;justify-content:center;background-color:hsl(from var(--color-red-30) h s l/.25)}.label.svelte-rr76mm .indicator-inner.svelte-rr76mm{width:4px;height:4px;border-radius:100%;background-color:var(--color-red-40)}@media (prefers-color-scheme: dark){:root:not(.light) .label.svelte-rr76mm.svelte-rr76mm{color:var(--color-red-50)}:root:not(.light) .label.svelte-rr76mm .indicator-outer.svelte-rr76mm{background-color:hsl(from var(--color-red-50) h s l/.3)}:root:not(.light) .label.svelte-rr76mm .indicator-outer .indicator-inner.svelte-rr76mm{background-color:var(--color-red-50)}}:root.dark .label.svelte-rr76mm.svelte-rr76mm{color:var(--color-red-50)}:root.dark .label.svelte-rr76mm .indicator-outer.svelte-rr76mm{background-color:hsl(from var(--color-red-50) h s l/.3)}:root.dark .label.svelte-rr76mm .indicator-outer .indicator-inner.svelte-rr76mm{background-color:var(--color-red-50)}
.snippet-url.svelte-17izklh.svelte-17izklh{align-items:center;color:var(--color-text-tertiary);display:flex;font-size:var(--text-sm);font-style:normal;margin-top:-.15rem;max-width:var(--snippet-url-max-width, 90%);overflow:visible;text-rendering:optimizeLegibility}.netloc.svelte-17izklh.svelte-17izklh{white-space:nowrap}.url-path.svelte-17izklh.svelte-17izklh{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.url-path.svelte-17izklh.svelte-17izklh:before{content:" ";display:inline-block;color:currentColor;white-space:pre}.snippet-url.svelte-17izklh .content-type.svelte-17izklh{border-radius:var(--border-radius-s);border:1px solid var(--color-divider-subtle);font-size:var(--text-xs-2);margin-bottom:calc(-1 * var(--spacing-xs));margin-left:.5rem;padding:0 var(--spacing-s);position:relative;text-decoration:none!important;text-transform:uppercase;top:calc(-1 * var(--spacing-xs))}
.container.svelte-1ydy2ep.svelte-1ydy2ep{height:100%;width:100%;position:relative}.container.style--title.svelte-1ydy2ep .loading-rows.svelte-1ydy2ep{height:1.4rem}.container.style--content.svelte-1ydy2ep.svelte-1ydy2ep:not(.nomargin){margin:9px 0}.message.svelte-1ydy2ep.svelte-1ydy2ep{background:var(--color-container-background);border-radius:var(--border-radius-s);left:50%;padding:var(--spacing-s) var(--spacing-m);position:absolute;top:50%;transform:translate(-50%) translateY(-50%)}.is-mobile .container.style--title.svelte-1ydy2ep .loading-rows.svelte-1ydy2ep{height:1.3rem}.loading-rows.svelte-1ydy2ep.svelte-1ydy2ep{--gd-c1:var(--color-neutral-10);--gd-c2:var(--color-neutral-20);align-items:flex-start;display:flex;flex-direction:column;justify-content:center;row-gap:17px}.loading-indicator.svelte-1ydy2ep.svelte-1ydy2ep{animation:svelte-1ydy2ep-gradient 10s ease infinite,svelte-1ydy2ep-slide-in .4s .4s ease-in-out forwards;background:linear-gradient(90deg,var(--gd-c1) 0%,var(--gd-c2) 50%,var(--gd-c1) 100%);background-size:400% 100%;border-radius:var(--border-radius-xl);height:12px;transform-origin:left;transform:scaleX(0);width:90%}.loading-indicator.row-title.svelte-1ydy2ep.svelte-1ydy2ep{height:16px;width:100%}.loading-indicator.row-sm.svelte-1ydy2ep.svelte-1ydy2ep{width:75%}.loading-indicator.svelte-1ydy2ep.svelte-1ydy2ep:nth-child(2){animation-delay:0s,.5s}.loading-indicator.svelte-1ydy2ep.svelte-1ydy2ep:nth-child(3){animation-delay:0s,.6s}.loading-indicator.svelte-1ydy2ep.svelte-1ydy2ep:nth-child(4){animation-delay:0s,.7s}@keyframes svelte-1ydy2ep-gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes svelte-1ydy2ep-slide-in{to{transform:scaleX(1)}}@media (prefers-color-scheme: dark){:root:not(.light) .loading-rows.svelte-1ydy2ep.svelte-1ydy2ep{--gd-c1:var(--color-neutral-10);--gd-c2:var(--color-neutral-17)}}:root.dark .loading-rows.svelte-1ydy2ep.svelte-1ydy2ep{--gd-c1:var(--color-neutral-10);--gd-c2:var(--color-neutral-17)}
.container.svelte-ahtdwf.svelte-ahtdwf{background:var(--color-container-background);border-radius:var(--border-radius-l);max-width:var(--normal-snippet-width);padding-bottom:1.7rem;padding-left:22px;padding-right:22px;padding-top:1.2rem}.x.svelte-ahtdwf.svelte-ahtdwf{display:flex;flex-wrap:wrap;justify-content:center}.x.svelte-ahtdwf .btn.svelte-ahtdwf{padding:5px 10px;border-radius:8px;background:var(--color-container-highlight);color:var(--color-text-tertiary);margin:5px;font-size:var(--text-sm)}.item.svelte-qisvpi.svelte-qisvpi{min-width:50%;display:block;margin-bottom:var(--spacing-m)}.item.svelte-qisvpi.svelte-qisvpi:last-child{margin-bottom:0}.item.svelte-qisvpi .attr.svelte-qisvpi{align-items:flex-start;color:var(--color-text-secondary);display:flex}.item.svelte-qisvpi .icon-wrapper.svelte-qisvpi{--size:var(--icon-xs);align-items:center;color:var(--color-icon-default);display:flex;flex-shrink:0;justify-content:center;margin-top:2px;margin-right:var(--spacing-m);padding:0}.item.svelte-qisvpi summary.svelte-qisvpi{list-style:none}.item.svelte-qisvpi a.svelte-qisvpi{color:var(--color-text-interactive);word-break:break-all}.item.svelte-qisvpi span.svelte-qisvpi{word-break:break-word}.btn.svelte-qisvpi.svelte-qisvpi{--btn-padding-horizontal:0;--btn-padding-vertical:0;--btn-height:auto;color:var(--color-text-interactive);font-family:var(--main-font);font-weight:400;justify-content:flex-start;letter-spacing:normal;line-height:1rem;margin:0;text-align:left}.infobox-actions.svelte-1jbqp9b.svelte-1jbqp9b{padding:var(--spacing-xl) 0}.infobox-actions.svelte-1jbqp9b table.svelte-1jbqp9b{margin-top:var(--spacing-s);margin-left:var(--spacing-s)}.infobox-actions.svelte-1jbqp9b table td.svelte-1jbqp9b{border-bottom:none;vertical-align:top;word-break:break-word;padding:1px var(--spacing-m)}.infobox-actions.svelte-1jbqp9b table td.svelte-1jbqp9b:first-child{padding-left:0;white-space:nowrap}.infobox-actions.svelte-1jbqp9b table td.svelte-1jbqp9b:last-child{padding-right:0}.infobox-actions.svelte-1jbqp9b .info-line.svelte-1jbqp9b{display:flex;flex-direction:row;align-items:center;gap:var(--spacing-s)}
.tag.svelte-f79pzx.svelte-f79pzx{padding:0 var(--spacing-s);width:-moz-fit-content;width:fit-content;border-radius:var(--border-radius-s)}.tag.open.svelte-f79pzx.svelte-f79pzx{background-color:var(--color-green-10);color:var(--color-systemfeedback-success-text);border:1px solid var(--color-green-20)}.tag.closed.svelte-f79pzx.svelte-f79pzx{background-color:var(--color-systemfeedback-error-background);color:var(--color-systemfeedback-error-text);border:1px solid var(--color-red-20)}.tag.timeslot.svelte-f79pzx.svelte-f79pzx{border:solid 1px var(--color-divider-subtle);color:var(--color-text-tertiary)}.r-multiple-hours.svelte-f79pzx.svelte-f79pzx{display:inline-flex;flex-direction:row;flex-wrap:wrap;gap:var(--spacing-s)}.r-multiple-hours.svelte-f79pzx .r-hours.svelte-f79pzx{white-space:nowrap}
#infobox.svelte-dh7zc0 section{padding:var(--spacing-xl) 0}#infobox.svelte-dh7zc0 section:not(:last-of-type){border-bottom:1px solid var(--color-divider-subtle)}.flex-between.svelte-11x9zub.svelte-11x9zub.svelte-11x9zub{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl)}.flex-between.svelte-11x9zub .header-link.svelte-11x9zub.svelte-11x9zub{color:var(--color-text-interactive)}.flex-between.svelte-11x9zub .header-link.svelte-11x9zub.svelte-11x9zub:hover{text-decoration:underline}h6.svelte-11x9zub.svelte-11x9zub.svelte-11x9zub{align-items:center;display:flex;height:26px}ul.svelte-11x9zub.svelte-11x9zub.svelte-11x9zub{list-style:none;margin:0;padding:0}ul.svelte-11x9zub li.svelte-11x9zub>div.svelte-11x9zub:not(:last-child){margin-bottom:var(--spacing-s)}ul.svelte-11x9zub li.svelte-11x9zub.svelte-11x9zub:not(:last-child){margin-bottom:1.2rem}
.r.svelte-1bgvbq8.svelte-1bgvbq8{align-items:center;display:flex}.r.loc-review.svelte-1bgvbq8.svelte-1bgvbq8,.r.infobox.svelte-1bgvbq8.svelte-1bgvbq8,.r.product.svelte-1bgvbq8.svelte-1bgvbq8{gap:var(--spacing-m)}.r.svelte-1bgvbq8 div.svelte-1bgvbq8{display:inherit}
.spacing.svelte-1sk9rdw{margin:0 var(--interpunct-spacing, var(--spacing-m));display:flex;align-items:center}
a.svelte-9a3ibw.svelte-9a3ibw{display:inline-flex;align-items:center;border:solid 1px var(--color-divider-subtle);border-radius:var(--border-radius-m);color:var(--color-text-primary);background:var(--color-page-background);max-width:320px;overflow:hidden;padding:var(--spacing-s) var(--spacing-m);text-decoration:none;text-overflow:ellipsis;white-space:nowrap;gap:var(--spacing-m)}a.minimal.svelte-9a3ibw.svelte-9a3ibw{width:28px;height:28px;justify-content:center;overflow:visible}@media (prefers-color-scheme: dark){:root:not(.light) a.minimal.svelte-9a3ibw.svelte-9a3ibw{background-color:var(--color-neutral-10)}}:root.dark a.minimal.svelte-9a3ibw.svelte-9a3ibw{background-color:var(--color-neutral-10)}a.svelte-9a3ibw.svelte-9a3ibw:hover,a.active.svelte-9a3ibw.svelte-9a3ibw{text-decoration:none;background:var(--color-container-highlight)}a.svelte-9a3ibw:hover .ref-idx.svelte-9a3ibw,a.active.svelte-9a3ibw .ref-idx.svelte-9a3ibw{background:var(--color-container-highlight)}a.svelte-9a3ibw .ref-idx.svelte-9a3ibw{align-items:center;border-radius:var(--border-radius-full);border:solid 1px var(--color-divider-subtle);display:flex;font-family:var(--mono-font);font-size:.45rem;height:16px;justify-content:center;min-height:16px;min-width:16px;width:16px}.infobox-profiles-body.svelte-32in9a{display:flex;flex-wrap:wrap;gap:var(--spacing-m)}@media (max-width: 672px){.infobox-profiles-body.svelte-32in9a{margin-top:0}}
header.svelte-19lcuy3 .icon{--size:var(--icon-xs);align-self:center;color:var(--color-text-tertiary)}@media (max-width: 672px){section.infobox-section.svelte-19lcuy3{padding:var(--spacing-xl) 0}section.infobox-section.svelte-19lcuy3 .fq-item{padding:0}.wrapper-mobile.svelte-19lcuy3{margin:0;display:block}.wrapper-mobile.svelte-19lcuy3 details.fq-item{border:none}.wrapper-mobile.svelte-19lcuy3 details[open] summary{padding-bottom:var(--spacing-xl)}}
details.svelte-1shc9hn.svelte-1shc9hn{padding:var(--spacing-xl) 0;border-top:solid 1px var(--color-divider-subtle)}details.reverse.svelte-1shc9hn.svelte-1shc9hn{border-top:0;border-bottom:solid 1px var(--color-divider-subtle)}details.reverse.svelte-1shc9hn.svelte-1shc9hn:last-of-type{border-bottom-width:0}details.no-border.svelte-1shc9hn.svelte-1shc9hn{border:0}details.svelte-1shc9hn summary.svelte-1shc9hn{list-style:none;cursor:pointer;transition:margin .15s ease-out}details[open].svelte-1shc9hn summary .text-ellipsis.svelte-1shc9hn{white-space:normal}details[open].svelte-1shc9hn summary .line-clamp-2.svelte-1shc9hn{display:block}details[open].svelte-1shc9hn summary.svelte-1shc9hn .icon{transform:rotate(180deg)}details[open].svelte-1shc9hn .faq-a.svelte-1shc9hn{animation:svelte-1shc9hn-slide .15s ease-in-out}@keyframes svelte-1shc9hn-slide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.faq-q.svelte-1shc9hn.svelte-1shc9hn{display:flex;align-items:flex-start;justify-content:space-between;color:var(--color-text-primary);margin-bottom:0}.faq-q.svelte-1shc9hn .question.svelte-1shc9hn{max-width:calc(100% - 28px - var(--spacing-xl));width:100%}.faq-q.svelte-1shc9hn .question p.svelte-1shc9hn:first-letter{text-transform:uppercase}.faq-a.svelte-1shc9hn.svelte-1shc9hn{color:var(--color-text-tertiary);word-break:break-word}.faq-a.svelte-1shc9hn p{margin:0 0 var(--spacing-m) 0}p.title.svelte-1shc9hn.svelte-1shc9hn{margin:0}p.title.line-clamp-2.svelte-1shc9hn.svelte-1shc9hn{max-width:100%}
.item.svelte-1me6nwr.svelte-1me6nwr.svelte-1me6nwr{position:relative;width:100%;display:block;text-align:start;font-size:inherit;line-height:inherit}.item.svelte-1me6nwr.svelte-1me6nwr.svelte-1me6nwr:last-of-type:not(:last-child){padding-bottom:var(--spacing-s)}.item.svelte-1me6nwr.svelte-1me6nwr.svelte-1me6nwr:hover{text-decoration:none}.item.svelte-1me6nwr .item-wrapper.svelte-1me6nwr.svelte-1me6nwr{display:flex;justify-content:space-between;gap:var(--spacing-m)}.item.svelte-1me6nwr .content.svelte-1me6nwr>.svelte-1me6nwr:not(:last-child){margin-bottom:var(--spacing-s)}.item.svelte-1me6nwr .title.svelte-1me6nwr.svelte-1me6nwr{color:var(--color-text-primary)}.item.svelte-1me6nwr .title .distance.svelte-1me6nwr.svelte-1me6nwr{min-width:-moz-fit-content;min-width:fit-content;white-space:nowrap}.item.svelte-1me6nwr .info-line.svelte-1me6nwr.svelte-1me6nwr{display:flex;flex-direction:row;align-items:center;gap:var(--spacing-s)}.item.svelte-1me6nwr address.svelte-1me6nwr.svelte-1me6nwr{font-style:normal}.item.svelte-1me6nwr .icon{--size:16px;min-width:16px;color:var(--color-gray-30)}.active.svelte-1me6nwr.svelte-1me6nwr.svelte-1me6nwr{background-color:var(--color-container-highlight);margin:calc(-1 * var(--spacing-m));padding:var(--spacing-m);width:calc(100% + 2 * var(--spacing-m))!important;border:1px solid var(--color-divider-subtle);border-radius:var(--border-radius-l)}#right-border.svelte-1me6nwr.svelte-1me6nwr.svelte-1me6nwr{position:absolute;right:0;top:0;width:5px;height:100%;background:linear-gradient(305.95deg,#bf14a2,#f73a1c 98.59%)}
#pagination.svelte-sd3rvk.svelte-sd3rvk{align-items:center;display:flex;gap:var(--spacing-xl);justify-content:center}#pagination.svelte-sd3rvk .btn.svelte-sd3rvk{border-radius:var(--border-radius-xl);border:1px solid var(--color-divider-subtle);color:var(--color-text-secondary)}#pagination.svelte-sd3rvk .btn.svelte-sd3rvk:hover:not(:disabled){border-color:var(--color-gray-20);text-decoration:underline}#pagination.svelte-sd3rvk .btn.svelte-sd3rvk:disabled{color:var(--color-text-disabled)}#info-banners.svelte-j5di7{display:flex;flex-direction:column;gap:var(--spacing-xl);padding:var(--spacing-2xl) var(--spacing-2xl) 0}.is-mobile #info-banners.svelte-j5di7{padding:var(--spacing-2xl) var(--spacing-xl) 0}
.menu-item.svelte-m7bc80.svelte-m7bc80{width:100%;display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xl);color:var(--color-text-tertiary);position:static}.menu-item.menu-item-custom.svelte-m7bc80.svelte-m7bc80{border-top:1px solid var(--color-divider-subtle)}.menu-item.svelte-m7bc80.svelte-m7bc80:hover{background-color:var(--color-container-highlight)}.menu-item.active.svelte-m7bc80.svelte-m7bc80{background-color:var(--color-container-highlight);color:var(--color-text-primary)}.menu-item.svelte-m7bc80 .icon{--size:16px}.menu-item.svelte-m7bc80 .item-label.svelte-m7bc80{display:flex;gap:var(--spacing-m);align-items:center}.menu-item.is-contextmenu-mobile.svelte-m7bc80.svelte-m7bc80{padding:var(--spacing-2xl)}
.marker.svelte-wybv8p{fill:#3f39e8;stroke:#3006c9}.marker.active.svelte-wybv8p{fill:#e11f3d;stroke:#b3002a;cursor:pointer;z-index:1000000}#location-picker.svelte-k2z49t{height:400px;width:600px;max-width:100%;border-radius:var(--border-radius-m);position:relative}form.svelte-k2z49t{position:absolute;left:var(--spacing-xl);top:var(--spacing-xl);margin:10px 0 0 10px;z-index:2}#location-picker.svelte-k2z49t svg{position:absolute;left:calc(50% - 10px);top:calc(50% - 27px);z-index:2}.contextmenu-pane #location-picker.svelte-k2z49t{height:100%;position:relative}#location-picker.svelte-k2z49t .map{border-radius:0}
header.svelte-18rzjgd{display:flex;flex-direction:row;align-items:baseline;padding:var(--snippet-header-padding, 0)}header.primary.svelte-18rzjgd{color:var(--color-text-primary);gap:var(--spacing-s)}header.secondary.svelte-18rzjgd{color:var(--color-text-secondary);gap:var(--spacing-m)}header.tertiary.svelte-18rzjgd{color:var(--color-text-tertiary);gap:var(--spacing-m)}header.svelte-18rzjgd .icon{--size:var(--icon-xs);align-self:center;color:var(--color-text-tertiary)}
.inline-entity-infobox-loading.svelte-1d6pp5m{padding:var(--spacing-2xl)}.inline-entity-infobox.svelte-1d6pp5m{display:contents}.inline-entity-infobox.svelte-1d6pp5m .snippet{border:none;padding:var(--spacing-2xl)}
.rating-logo.svelte-1q0ythw.svelte-1q0ythw{border:1px solid var(--color-divider-subtle);border-radius:var(--border-radius-full);padding:var(--spacing-s);width:34px;height:34px}.rating-logo.svelte-1q0ythw img.svelte-1q0ythw{border-radius:var(--border-radius-full);-o-object-fit:cover;object-fit:cover}a.svelte-1q0ythw.svelte-1q0ythw:hover{text-decoration:none}a.svelte-1q0ythw:hover .name.svelte-1q0ythw{text-decoration:underline}.rating-info.svelte-1q0ythw.svelte-1q0ythw{--interpunct-spacing:var(--spacing-s)}.flex-between.svelte-1s5o0wu.svelte-1s5o0wu{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.flex-between.svelte-1s5o0wu .header-link.svelte-1s5o0wu{color:var(--color-text-interactive)}ul.svelte-1s5o0wu.svelte-1s5o0wu{list-style:none;margin:0;padding:0;display:flex;flex-direction:row;gap:var(--spacing-m);justify-content:flex-start}ul.svelte-1s5o0wu li.svelte-1s5o0wu{max-width:calc((370px - var(--spacing-2xl) * 2 - 3 * var(--spacing-m)) / 4);overflow:hidden}ul.svelte-1s5o0wu .person.svelte-1s5o0wu{max-width:100%;min-width:100%;overflow:hidden}ul.svelte-1s5o0wu .person .image-wrapper.svelte-1s5o0wu{height:95px;background-size:cover;background-position:center 0;background-repeat:no-repeat;background-color:var(--color-container-highlight);border-radius:var(--border-radius-m);overflow:hidden;background-image:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/default-person.DqJeowUA.svg)}ul.svelte-1s5o0wu .person .image-wrapper img.svelte-1s5o0wu{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}ul.svelte-1s5o0wu .name.svelte-1s5o0wu{padding:5px;color:var(--color-text-primary);word-wrap:break-word;height:-moz-fit-content;height:fit-content;max-height:45px!important}
.infobox-attr.svelte-1pzj58i.svelte-1pzj58i{margin-bottom:var(--spacing-xl);display:flex;flex-direction:column}.infobox-attr.header.svelte-1pzj58i.svelte-1pzj58i{margin-bottom:var(--spacing-s)}.infobox-attr.svelte-1pzj58i.svelte-1pzj58i:last-child{margin-bottom:0}.infobox-attr-name.svelte-1pzj58i+span.svelte-1pzj58i,.infobox-attr.svelte-1pzj58i .attr-value.svelte-1pzj58i{overflow-wrap:break-word}.infobox-attr-header.svelte-1pzj58i span:first-child{color:var(--color-text-tertiary);font-family:var(--main-font);font-size:var(--text-md-2);font-style:normal;font-weight:400;letter-spacing:-.2px;line-height:1.1}.infobox-attr-header.svelte-1pzj58i strong{font-weight:400}.infobox-attr-header.svelte-1pzj58i br~span{color:var(--color-text-tertiary);font-size:var(--text-sm-2);letter-spacing:normal}.infobox-attr.svelte-1pzj58i table th,.infobox-attr.svelte-1pzj58i table td{padding:var(--spacing-s) var(--spacing-m);text-align:left;vertical-align:top}.infobox-attr.svelte-1pzj58i table th:first-child,.infobox-attr.svelte-1pzj58i table td:first-child{padding-left:0}.infobox-attr.svelte-1pzj58i table th:last-child,.infobox-attr.svelte-1pzj58i table td:last-child{padding-right:0}@media (prefers-color-scheme: dark){:root:not(.light) .latex.svelte-1pzj58i.svelte-1pzj58i{filter:invert(.8)}}:root.dark .latex.svelte-1pzj58i.svelte-1pzj58i{filter:invert(.8)}.infobox-factsheet-show-more.svelte-1oezdbe{align-items:center;color:var(--color-text-interactive);display:flex;flex-direction:row;gap:var(--spacing-xs);margin-top:var(--spacing-xl);text-align:left}.infobox-factsheet-show-more.svelte-1oezdbe .icon{--size:20px}.infobox-factsheet-show-more.svelte-1oezdbe .flip{transform:rotate(180deg)}
.infobox-thumbnail.svelte-kal85j.svelte-kal85j{align-items:center;border-radius:var(--border-radius-m);display:flex;height:100%;justify-content:center;overflow:hidden;position:relative;width:100%;z-index:1}.infobox-thumbnail.svelte-kal85j.svelte-kal85j:before{content:"";display:block;padding-top:100%}.infobox-thumbnail.logo.svelte-kal85j.svelte-kal85j{background-color:var(--color-gray-10)}@media (prefers-color-scheme: dark){:root:not(.light) .infobox-thumbnail.logo.svelte-kal85j.svelte-kal85j{background-color:var(--color-gray-70)}}:root.dark .infobox-thumbnail.logo.svelte-kal85j.svelte-kal85j{background-color:var(--color-gray-70)}img.svelte-kal85j.svelte-kal85j{bottom:0;font-size:0;height:100%;left:0;-o-object-fit:cover;object-fit:cover;position:absolute;right:0;top:0;width:100%}.infobox-thumbnail.logo.svelte-kal85j img.svelte-kal85j{display:block;height:min(120px,80%);margin:auto;-o-object-fit:contain;object-fit:contain;width:min(120px,80%)}.infobox-thumbnail.object-position-top.svelte-kal85j img.svelte-kal85j{-o-object-position:top;object-position:top}#fullview-content-wrapper #chosen-poi-sheet.scrolled header.svelte-1lxzc1t.svelte-1lxzc1t{position:sticky;top:0}header.svelte-1lxzc1t.svelte-1lxzc1t{border-bottom:1px solid var(--color-divider-subtle);display:flex;flex-direction:column}.infobox-header.svelte-1lxzc1t.svelte-1lxzc1t:last-child{padding-bottom:var(--spacing-2xl)}.infobox-header-title.svelte-1lxzc1t.svelte-1lxzc1t{align-items:center;display:flex;justify-content:space-between}.infobox-website-url.svelte-1lxzc1t.svelte-1lxzc1t{align-items:center;display:flex;gap:var(--spacing-s);margin-top:var(--spacing-s)}.infobox-website-url.svelte-1lxzc1t .icon-wrapper.svelte-1lxzc1t{--size:var(--icon-s);color:var(--color-icon-default);flex-shrink:0;padding:0}.infobox-website-url.svelte-1lxzc1t a.svelte-1lxzc1t{color:var(--color-text-interactive)}.infobox-website-url.svelte-1lxzc1t a.svelte-1lxzc1t:visited{color:var(--color-link-visited)}.infobox-header--complex.svelte-1lxzc1t.svelte-1lxzc1t{-moz-column-gap:var(--spacing-2xl);column-gap:var(--spacing-2xl);display:flex;flex-direction:row;justify-content:space-between}.infobox-header-right.svelte-1lxzc1t.svelte-1lxzc1t{align-items:flex-end;display:flex;flex-direction:column;gap:var(--spacing-m)}.infobox-header-thumbnail.svelte-1lxzc1t.svelte-1lxzc1t{flex-shrink:0;height:80px;width:80px}.infobox-header.svelte-1lxzc1t+.infobox-images{margin-top:var(--spacing-xl)}h1.svelte-1lxzc1t.svelte-1lxzc1t{color:var(--color-text-primary);margin:0;overflow-wrap:break-word}h2.svelte-1lxzc1t.svelte-1lxzc1t{color:var(--color-text-tertiary);margin-top:var(--spacing-xs)}h2.svelte-1lxzc1t.svelte-1lxzc1t:first-letter{text-transform:capitalize}a.svelte-1lxzc1t.svelte-1lxzc1t:hover{text-decoration:none}a.svelte-1lxzc1t:hover h1.svelte-1lxzc1t{color:var(--color-link-default)}.is-mobile .infobox-header.svelte-1lxzc1t.svelte-1lxzc1t:last-child{padding-bottom:var(--spacing-2xl)}.is-mobile h2.svelte-1lxzc1t.svelte-1lxzc1t{margin-top:0}.attribution.svelte-ai2lx7.svelte-ai2lx7{display:flex;flex-wrap:wrap;min-width:0}.attribution.svelte-ai2lx7 cite.svelte-ai2lx7{font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attribution.svelte-ai2lx7 a.svelte-ai2lx7{color:var(--color-text-secondary)}section.svelte-eog7cz{color:var(--color-text-secondary);overflow-wrap:break-word}a.svelte-eog7cz{color:var(--color-text-interactive)}
button.svelte-io2suq{padding:var(--spacing-s);border-radius:var(--border-radius-s);border:1px solid transparent;line-height:0}button.svelte-io2suq .icon{--size:14px}button.svelte-io2suq:hover{background:#f5f6f6;background:color-mix(in srgb,var(--color-gray-60),transparent 95%)}button.svelte-io2suq:active{border-color:var(--color-divider-subtle)}footer.svelte-1b67e0s.svelte-1b67e0s{color:var(--color-text-tertiary)}footer.has-action.svelte-1b67e0s.svelte-1b67e0s{padding-top:0;position:relative;margin-top:var(--spacing-l)}footer.svelte-1b67e0s .row.svelte-1b67e0s{display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-top:var(--spacing-m);gap:var(--spacing-l)}footer.svelte-1b67e0s .row-divider.svelte-1b67e0s{height:1px;flex:1;background:var(--color-divider-subtle);width:100%}.action-wrapper.svelte-1b67e0s.svelte-1b67e0s{position:relative;width:100%}.action-wrapper.svelte-1b67e0s .action-container.svelte-1b67e0s{background:var(--color-page-background);border-radius:var(--border-radius-m);margin:0 auto;position:relative;width:var(--action-width, -moz-fit-content);width:var(--action-width, fit-content);z-index:1}.primary.svelte-1b67e0s.svelte-1b67e0s,.primary-right.svelte-1b67e0s.svelte-1b67e0s{align-items:center;display:flex;flex-direction:row;position:relative}.primary.svelte-1b67e0s.svelte-1b67e0s{gap:var(--spacing-m)}.primary.svelte-1b67e0s .ai-digest.svelte-1b67e0s .button{color:inherit}.row.svelte-1b67e0s :first-child a{color:inherit!important}
.infobox-images.map-only.svelte-10hg25w{height:161px;max-height:161px;min-height:161px}.map-wrapper.svelte-10hg25w{background-color:var(--color-container-highlight);border-radius:var(--border-radius-m);display:block;height:100%;overflow:hidden;position:relative;width:100%;z-index:0}.map-wrapper.svelte-10hg25w svg{left:calc(50% - 10px);position:absolute;top:calc(50% - 27px);z-index:2}.is-mobile .infobox-images.svelte-10hg25w{margin-top:var(--spacing-xl)}.is-mobile .infobox-images.svelte-10hg25w:last-child{margin-bottom:var(--spacing-xl)}
.attr-inline-list.svelte-7vu18b{display:flex;flex-direction:row;color:var(--color-text-secondary);align-items:center;padding:var(--spacing-m) var(--spacing-2xl) 0}.attr-inline-list.svelte-7vu18b:hover{text-decoration:none}
.bottom-fade.svelte-h9rkzz{background:linear-gradient(0deg,var(--color-page-background) var(--offset, 1rem),rgba(255,255,255,0));bottom:0;height:var(--height, 5rem);left:0;pointer-events:none;position:absolute;right:0;z-index:1}.bottom-fade.rounded.svelte-h9rkzz{border-bottom-left-radius:var(--border-radius-xl);border-bottom-right-radius:var(--border-radius-xl)}@media (prefers-color-scheme: dark){:root:not(.light) .bottom-fade.svelte-h9rkzz{background:linear-gradient(0deg,var(--color-page-background) var(--offset, 1rem),rgba(23,25,30,0))}}:root.dark .bottom-fade.svelte-h9rkzz{background:linear-gradient(0deg,var(--color-page-background) var(--offset, 1rem),rgba(23,25,30,0))}
.images-row.svelte-88bxq4.svelte-88bxq4{display:flex;flex-direction:row;gap:var(--spacing-m)}.images-row.svelte-88bxq4 .img-wrapper.svelte-88bxq4{aspect-ratio:16/9;flex:1}.images-row.rectangular.svelte-88bxq4 .img-wrapper.svelte-88bxq4{aspect-ratio:1/1}.images-row.svelte-88bxq4 img.svelte-88bxq4{border-radius:var(--border-radius-m);height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.layout-mobile.svelte-3v9qxv{display:none}.description.svelte-3v9qxv:first-letter{text-transform:uppercase}@media (max-width: 672px){.layout-mobile.svelte-3v9qxv{display:flex;flex-direction:column}#llm-snippet.expanded:not(.streaming){padding-bottom:0}#llm-snippet.expanded:not(.streaming) .conversation-footer-layout{padding-bottom:var(--spacing-2xl)}}.chatllm-answer-list.svelte-3v9qxv{display:flex;flex-direction:column;gap:var(--spacing-xl)}#chatllm-conversation.svelte-3v9qxv{display:flex;flex-direction:column;gap:var(--spacing-xl);margin-top:var(--spacing-xl)}.chatllm-conversation-placeholder.svelte-3v9qxv{height:54px}
.snippet-content-wrapper.svelte-985tyq{display:flex;flex-direction:column}.snippet-content.svelte-985tyq{overflow:hidden;position:relative}.snippet-content.has-min-height.svelte-985tyq{min-height:var(--snippet-min-height)}.snippet-content.has-max-height.svelte-985tyq{max-height:var(--snippet-max-height)}.snippet-content.expanded.svelte-985tyq{max-height:none;overflow:visible}.snippet-fade-wrapper.svelte-985tyq{--offset:0;position:relative}.snippet-show-more.svelte-985tyq{align-items:center;display:flex;position:relative;width:100%}.snippet-show-more.svelte-985tyq button#llm-show-more-button{height:34px;margin:auto;width:33.3333333333%}.divider.svelte-985tyq{left:0;position:absolute;right:0;width:100%}.show-more-cta.svelte-985tyq{position:absolute;bottom:0;left:50%;transform:translate(-50%) translateY(100%);color:var(--color-primary-40);padding:var(--spacing-xs) var(--spacing-m);border-bottom-right-radius:var(--border-radius-s);border-bottom-left-radius:var(--border-radius-s);border:1px solid var(--color-primary-10);border-top:0;display:flex;gap:var(--spacing-s);align-items:center}.show-more-cta.svelte-985tyq .icon{--size:12px}@media (max-width: 672px){.snippet-show-more.svelte-985tyq{width:100%}}@media (prefers-color-scheme: dark){:root:not(.light) .show-more-cta.svelte-985tyq{color:var(--color-text-interactive);border-color:var(--color-serp-container-interactive)}}:root.dark .show-more-cta.svelte-985tyq{color:var(--color-text-interactive);border-color:var(--color-serp-container-interactive)}
.context-result-card.svelte-h81en9{border-radius:var(--border-radius-m);height:50px;position:relative;width:156px}.context-result-card.small.svelte-h81en9{width:142px}.context-result-card.svelte-h81en9:before{background:linear-gradient(180deg,rgba(0,0,0,.05) 0%,transparent 100%);border-top-left-radius:var(--border-radius-m);border-top-right-radius:var(--border-radius-m);content:"";display:block;height:100%;position:absolute;top:0;width:100%}@media (prefers-color-scheme: dark){:root:not(.light) .context-result-card.svelte-h81en9:before{background:linear-gradient(180deg,rgba(255,255,255,.05) 0%,transparent 100%)}}:root.dark .context-result-card.svelte-h81en9:before{background:linear-gradient(180deg,rgba(255,255,255,.05) 0%,transparent 100%)}.context-result-card.svelte-1fwr26v{border-radius:var(--border-radius-m);border:1px solid var(--color-divider-subtle);flex-shrink:0;max-width:156px;min-width:156px;padding:var(--spacing-m);transition:var(--transition-background-hover);width:156px}.context-result-card.small.svelte-1fwr26v{max-width:142px;min-width:142px;width:142px}.context-result-card.svelte-1fwr26v:hover{background:var(--color-container-highlight);text-decoration:none}.context-result-header.svelte-1fwr26v{align-items:center;display:flex;gap:var(--spacing-s)}.main-answer-context-wrapper.svelte-9lmku9.svelte-9lmku9{display:flex;gap:var(--spacing-m)}.main-answer-context.svelte-9lmku9.svelte-9lmku9{display:flex;gap:var(--spacing-m);overflow:hidden}.main-answer-context.expanded.svelte-9lmku9.svelte-9lmku9{flex-wrap:wrap}.show-more.svelte-9lmku9.svelte-9lmku9{border-radius:var(--border-radius-m);border:1px solid var(--color-divider-subtle);display:flex;flex-direction:column;flex-shrink:0;justify-content:space-between;max-width:156px;padding:var(--spacing-m);transition:var(--transition-background-hover)}.show-more.svelte-9lmku9.svelte-9lmku9:hover{background-color:var(--color-container-highlight)}.show-more-header.svelte-9lmku9.svelte-9lmku9{align-items:center;display:flex;height:.8rem}.main-answer-context-wrapper.mobile.svelte-9lmku9 .main-answer-context.svelte-9lmku9{flex-wrap:nowrap;margin-left:calc(-1 * var(--spacing-2xl));margin-right:calc(-1 * var(--spacing-2xl));overflow-x:auto;padding:0 var(--spacing-2xl);white-space:nowrap}
img.svelte-1qo6czq{display:block}
.rich-llm-snippet.svelte-17gxbto{background:var(--gradient-llm);border-radius:var(--border-radius-l);border:solid 1px var(--color-divider-subtle);display:flex;flex-direction:column;min-height:97px;padding:var(--spacing-l) var(--spacing-2xl)}.rich-llm-snippet.is-chat-fullscreen.svelte-17gxbto{background:none;border:none;padding:0}.rich-llm-snippet.svelte-17gxbto .llm-output{color:var(--color-text-secondary)!important}.rich-llm-snippet.svelte-17gxbto .llm-output>*:first-child{margin-top:var(--spacing-s)}.rich-llm-snippet.svelte-17gxbto .llm-output>*:last-child{margin-bottom:var(--spacing-m)}.chatllm-answer-list.svelte-17gxbto{display:flex;flex-direction:column;gap:var(--spacing-xl)}#chatllm-conversation.svelte-17gxbto{display:flex;flex-direction:column;gap:var(--spacing-xl);margin-top:var(--spacing-xl)}
.header-middle.svelte-12zlaov.svelte-12zlaov{display:flex;align-items:baseline;margin-top:-11px}.price-change.svelte-12zlaov.svelte-12zlaov{display:flex;align-items:center}.price-change.svelte-12zlaov .change.svelte-12zlaov{font-size:.9rem}.price-change.svelte-12zlaov .arrow-icon.svelte-12zlaov{max-width:24px;margin-left:10px;display:flex;align-items:center;justify-content:center}.price-change.svelte-12zlaov .icon{--size:18px;stroke:currentColor}.h-scroll.svelte-12zlaov.svelte-12zlaov{display:flex;flex-wrap:nowrap;max-width:inherit;overflow:auto;-ms-overflow-style:none;scrollbar-width:none}.h-scroll.svelte-12zlaov.svelte-12zlaov::-webkit-scrollbar{display:none}.header-bottom.svelte-12zlaov a.svelte-12zlaov{color:inherit}.block.svelte-12zlaov.svelte-12zlaov{display:block;width:24%}.flex-hcenter-apart.svelte-12zlaov.svelte-12zlaov{display:flex;align-items:center;justify-content:space-between}.k-label.svelte-12zlaov.svelte-12zlaov{min-width:50%;color:var(--color-text-tertiary)}.k-value.svelte-12zlaov.svelte-12zlaov{text-align:right;color:var(--color-text-tertiary)}.footer.svelte-12zlaov.svelte-12zlaov{width:100%;margin-top:var(--spacing-xl)}.footer.svelte-12zlaov .flex.svelte-12zlaov{width:100%;flex-wrap:wrap;justify-content:space-between}.res.svelte-12zlaov.svelte-12zlaov{min-width:-moz-max-content;min-width:max-content;margin-top:var(--spacing-m-2);margin-right:var(--spacing-l);margin-left:1px;margin-bottom:2px;padding:var(--spacing-s) var(--spacing-m);border-radius:var(--border-radius-m)}.active.svelte-12zlaov.svelte-12zlaov{color:var(--color-text-primary);background-color:var(--color-container-highlight)}.res.svelte-12zlaov.svelte-12zlaov:hover{color:var(--color-text-primary);cursor:pointer;background-color:var(--color-container-highlight)}.relative-container.svelte-12zlaov.svelte-12zlaov{position:relative}.error.svelte-12zlaov.svelte-12zlaov{display:flex;align-items:center;justify-content:center;height:100%;width:100%;position:absolute;top:0;gap:var(--spacing-m)}.loading-wrapper.svelte-12zlaov.svelte-12zlaov{width:100px}@media only screen and (max-width: 420px){.svelte-12zlaov:globa(.is-mobile) .footer .flex.svelte-12zlaov{gap:var(--spacing-xl)}.is-mobile .block.svelte-12zlaov.svelte-12zlaov{width:calc(50% - var(--spacing-xl) / 2)}}#llm-snippet.svelte-12zlaov.svelte-12zlaov{margin-top:var(--spacing-2xl);scroll-margin:180px}
.header.svelte-37ljbo.svelte-37ljbo{display:flex;flex-direction:row;margin-bottom:var(--spacing-xl);align-items:center}h1.svelte-37ljbo.svelte-37ljbo{margin-bottom:0}.header.svelte-37ljbo h1.svelte-37ljbo:last-of-type{color:var(--color-text-tertiary)}.actions.svelte-37ljbo.svelte-37ljbo{flex:1;align-items:flex-end}
.loading-indicator.svelte-fkqv31{--gd-c1:#e3e5ea;--gd-c2:#f6f7fc;animation:svelte-fkqv31-gradient 10s ease infinite,svelte-fkqv31-slide-in .4s var(--delay) ease-in-out forwards;background:linear-gradient(90deg,var(--gd-c1) 0%,var(--gd-c2) 50%,var(--gd-c1) 100%);background-size:400% 100%;border-radius:var(--border-radius-xl);transform-origin:left;transform:scaleX(0)}@media (prefers-color-scheme: dark){:root:not(.light) .loading-indicator.svelte-fkqv31{--gd-c1:#242731;--gd-c2:#363d55}}:root.dark .loading-indicator.svelte-fkqv31{--gd-c1:#242731;--gd-c2:#363d55}@keyframes svelte-fkqv31-gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes svelte-fkqv31-slide-in{to{transform:scaleX(1)}}
.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:-moz-min-content;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}.uplot{margin:0 auto auto}.u-select{background:#00000012}.u-tooltip{background-color:var(--color-container-highlight);padding:5px 10px;border-radius:8px;display:flex;font-size:14px;box-shadow:0 .1rem .9rem .2rem #0000000a}.u-tooltip .date{color:var(--color-text-secondary)}.u-tooltip .value{color:var(--color-text-primary);margin-right:15px}
svg.svelte-1ougk33.svelte-1ougk33{width:100%;height:100%}.clock-face.svelte-1ougk33.svelte-1ougk33{stroke:#dadada;stroke-width:2;fill:transparent}.clock.svelte-1ougk33.svelte-1ougk33{max-width:100px;max-height:100px;position:relative;margin-right:25px}.pulsate.svelte-1ougk33 #timer-progress-container.svelte-1ougk33{animation:.75s ease-out infinite svelte-1ougk33-pulsate}.pulsate.svelte-1ougk33 .icon-wrapper .svelte-1ougk33{fill:var(--color-primary-50)}@keyframes svelte-1ougk33-pulsate{0%{transform:scale(1);opacity:1}to{transform:scale(1.2);opacity:0}}#timer-progress.svelte-1ougk33.svelte-1ougk33{fill:none;stroke:var(--color-primary-50);stroke-width:2}#control-container.svelte-1ougk33.svelte-1ougk33{width:100%;height:100%;position:absolute;top:0;left:0;right:0;bottom:0;display:flex;justify-content:center;align-items:center}#widget-timer-container.svelte-1ougk33.svelte-1ougk33{display:flex;align-items:center}#widget-timer-container.svelte-1ougk33 h1.svelte-1ougk33{margin-bottom:0;border-bottom:1px solid transparent}#widget-timer-container.svelte-1ougk33 h1.svelte-1ougk33:hover{border-bottom:1px solid var(--color-container-highlight);cursor:pointer}#timer-input.svelte-1ougk33.svelte-1ougk33{display:flex;flex-direction:row;align-items:center}#timer-input.svelte-1ougk33 .btn.svelte-1ougk33{margin-left:2em}input.svelte-1ougk33.svelte-1ougk33{border:none;border-bottom:1px solid var(--color-container-highlight);background-color:transparent;height:46px;padding:6px 12px;width:2em;color:var(--color-text-primary);text-align:center;margin-right:.2rem;font-size:inherit}input.svelte-1ougk33.svelte-1ougk33:focus{border-radius:var(--border-radius-m)}label.svelte-1ougk33.svelte-1ougk33{color:var(--color-text-tertiary);font-size:2rem;font-weight:400;margin-right:.5rem}.icon-wrapper.svelte-1ougk33.svelte-1ougk33{padding:0}#timer-control.svelte-1ougk33 .done.svelte-1ougk33 svg{fill:none}#timer-control.svelte-1ougk33 .done.svelte-1ougk33 svg path{stroke:currentColor}#widget-timer-container.svelte-1ougk33.svelte-1ougk33:fullscreen{justify-content:center;background-color:var(--color-page-background)}#widget-timer-container.svelte-1ougk33:fullscreen h1.svelte-1ougk33{font-size:15vh}
.widget-controls.svelte-ti1g22{display:flex;justify-content:flex-end}
#widget-stopwatch-container.svelte-j6j896.svelte-j6j896{align-items:center;-moz-column-gap:1rem;column-gap:1rem}button.svelte-j6j896.svelte-j6j896{width:75px;height:auto;border-radius:100%;aspect-ratio:1;display:block;padding:0}.btn--start.svelte-j6j896.svelte-j6j896{background-color:var(--color-green-40)}h1.svelte-j6j896.svelte-j6j896{flex:1;margin:0}.is-mobile button.svelte-j6j896.svelte-j6j896{width:50px;min-width:50px;height:50px}#widget-stopwatch-container.svelte-j6j896:not(:fullscreen) h1 .svelte-j6j896{width:60px;min-width:60px;max-width:60px;text-align:center}#widget-stopwatch-container.svelte-j6j896:fullscreen h1 .svelte-j6j896{width:min(30%,150px);min-width:min(30%,150px);max-width:min(30%,150px);text-align:center}#widget-stopwatch-container.svelte-j6j896.svelte-j6j896:fullscreen{justify-content:center;background-color:var(--color-page-background);padding:10%}#widget-stopwatch-container.svelte-j6j896:fullscreen h1.svelte-j6j896{justify-content:center;font-size:10vh}.is-mobile #widget-stopwatch-container.svelte-j6j896.svelte-j6j896:fullscreen{flex-direction:column;row-gap:2rem}.is-mobile #widget-stopwatch-container.svelte-j6j896:fullscreen h1.svelte-j6j896{font-size:48px;white-space:nowrap;flex:initial;width:100%}.is-mobile #widget-stopwatch-container.svelte-j6j896:fullscreen h1 .svelte-j6j896{width:min(30%,70px);min-width:min(30%,70px);max-width:min(30%,70px)}
#calc-header.svelte-qaqj8s.svelte-qaqj8s{position:relative;display:flex;justify-content:space-between;align-items:center;color:var(--color-text-tertiary);margin-bottom:var(--spacing-xl)}#calc-input-container.svelte-qaqj8s.svelte-qaqj8s{position:relative}#calc-input.svelte-qaqj8s.svelte-qaqj8s{font-size:1.2rem;color:var(--color-text-primary);border:solid 2px transparent;outline:none;border-radius:var(--border-radius-m);width:100%;padding:1.8rem 1rem 1rem;text-align:right;background:var(--color-container-highlight);min-height:calc(82px + .8rem);margin-bottom:8px;overflow-wrap:anywhere}#calc-input.svelte-qaqj8s.svelte-qaqj8s:focus{outline:none}.input.svelte-qaqj8s .open-paren{color:#b0e0e6}.keypad.svelte-qaqj8s.svelte-qaqj8s{display:flex;flex-wrap:wrap}.button-group.svelte-qaqj8s.svelte-qaqj8s{display:grid;grid-auto-rows:min-content;gap:var(--spacing-s);padding-right:var(--spacing-s)}.button-group.svelte-qaqj8s button.svelte-qaqj8s{font-size:16px;--button-color:var(--color-container-highlight);border:none;color:var(--color-text-primary);border-radius:var(--border-radius-s);background:var(--button-color);border:1px solid var(--button-color);padding:8px;cursor:pointer}.button-group.svelte-qaqj8s button.svelte-qaqj8s sup{line-height:.7}.button-group.svelte-qaqj8s button.svelte-qaqj8s:active{transform-origin:center;transform:scale(.95)}.button-group.numbers.svelte-qaqj8s button[data-type=num].svelte-qaqj8s{background:none;border:1px solid var(--color-container-highlight)}.button-group.svelte-qaqj8s button[data-type=ans].svelte-qaqj8s{--button-color:var(--color-primary-50);color:#fff}.button-group.numbers.svelte-qaqj8s.svelte-qaqj8s{grid-template-columns:repeat(3,1fr);min-width:50%}.button-group.operators.svelte-qaqj8s.svelte-qaqj8s{min-width:10%;padding-right:0}.button-group.sci.svelte-qaqj8s.svelte-qaqj8s{--columns:2;grid-template-columns:repeat(var(--columns),1fr);min-width:40%;order:-1}.mode-switch.svelte-qaqj8s.svelte-qaqj8s{position:absolute;top:10px;left:10px;display:flex;justify-content:center;align-items:center;gap:var(--spacing-s)}.mode-switch.svelte-qaqj8s .label.svelte-qaqj8s{font-size:.6rem;cursor:pointer;background:transparent;color:var(--color-text-secondary);line-height:1.25;padding:var(--spacing-xs) var(--spacing-s);border-radius:var(--border-radius-xs);display:inline-block}.mode-switch.svelte-qaqj8s .label.svelte-qaqj8s:hover{background-color:var(--color-container-background)}@media (max-width: 428px){.is-mobile .button-group.button-group.numbers.svelte-qaqj8s.svelte-qaqj8s{width:75%}.is-mobile .button-group.button-group.operators.svelte-qaqj8s.svelte-qaqj8s{width:25%}.is-mobile .button-group.sci.svelte-qaqj8s.svelte-qaqj8s{--columns:4;order:unset;width:100%;padding-right:0;padding-top:4px}}
select.svelte-l1ca3j.svelte-l1ca3j{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;border-radius:var(--border-radius-s);color:inherit;font-size:.8rem;height:1.8rem;line-height:1.2rem;outline:0;vertical-align:middle;width:100%;text-transform:none;margin:0;color:var(--color-text-secondary);font-size:var(--text-sm)}.form-select.svelte-l1ca3j.svelte-l1ca3j{background:var(--color-container-highlight) url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%204%205'%3E%3Cpath%20fill='%23667189'%20d='M2%200L0%202h4zm0%205L0%203h4z'/%3E%3C/svg%3E") no-repeat right .35rem center/.4rem .5rem!important}#dimensionality.svelte-l1ca3j.svelte-l1ca3j{margin-bottom:1rem;padding-left:1rem}.box.svelte-l1ca3j.svelte-l1ca3j{display:block;border-radius:var(--border-radius-m);width:47%}.amount.svelte-l1ca3j.svelte-l1ca3j{background:var(--color-container-highlight)!important;font-size:1.2rem;color:var(--color-text-primary);font-family:var(--brand-font);width:45%;padding:.5rem;border-top-left-radius:var(--border-radius-m);border-top-right-radius:var(--border-radius-m);width:100%;padding:10px 20px}.no-border.svelte-l1ca3j.svelte-l1ca3j{padding:5px 20px;margin-top:0;outline:none}.no-border.svelte-l1ca3j.svelte-l1ca3j:focus{box-shadow:none!important;border:solid 1px var(--color-divider-subtle)}.flex-hcenter.svelte-l1ca3j.svelte-l1ca3j{display:flex;justify-content:space-between}.box.svelte-l1ca3j select.svelte-l1ca3j{background:var(--color-container-highlight);border-bottom-left-radius:var(--border-radius-m)!important;border-bottom-right-radius:var(--border-radius-m)!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.box.svelte-l1ca3j select.svelte-l1ca3j:hover{cursor:pointer;background-color:var(--color-container-highlight)!important;color:var(--color-gray-70)!important}button.svelte-l1ca3j.svelte-l1ca3j{display:flex}.icon-wrapper.svelte-l1ca3j.svelte-l1ca3j{--size:var(--icon-m);padding:0}.icon-wrapper.svelte-l1ca3j .icon{color:var(--color-text-tertiary)}.icon-wrapper.svelte-l1ca3j.svelte-l1ca3j:hover{background-color:var(--color-container-highlight);color:var(--color-gray-70);border-radius:40px;cursor:pointer}@media (max-width: 320px){.is-mobile .flex-hcenter.svelte-l1ca3j.svelte-l1ca3j{flex-direction:column}.is-mobile .box.svelte-l1ca3j.svelte-l1ca3j{width:100%}}#llm-snippet.svelte-l1ca3j.svelte-l1ca3j{margin-top:var(--spacing-2xl);scroll-margin:180px}
.label.svelte-5m1o67,.label.svelte-1hqblho.svelte-1hqblho{border-radius:var(--border-radius-s);margin-bottom:0;background:transparent;border:solid 1px var(--color-divider-subtle);color:var(--color-text-tertiary);padding:.1rem .2rem}table.svelte-1hqblho.svelte-1hqblho{border-spacing:3px 2px;border-collapse:inherit;margin-top:var(--spacing-m)}table.svelte-1hqblho td.svelte-1hqblho{border-bottom:0;vertical-align:top}.label.svelte-v50ry1{border-radius:var(--border-radius-s);margin-bottom:0;background:transparent;border:solid 1px var(--color-divider-subtle);color:var(--color-text-tertiary);padding:.1rem .2rem}.row.svelte-v50ry1{display:flex;flex-direction:row}.label.svelte-5m1o67{border-radius:var(--border-radius-s);margin-bottom:0;background:transparent;border:solid 1px var(--color-divider-subtle);color:var(--color-text-tertiary);padding:.1rem .2rem}.header.svelte-1ii1eh0{margin-bottom:var(--spacing-m)}.label.svelte-1ii1eh0,.label.svelte-5m1o67{border-radius:var(--border-radius-s);margin-bottom:0;background:transparent;border:solid 1px var(--color-divider-subtle);color:var(--color-text-tertiary);padding:.1rem .2rem}#llm-snippet.svelte-jsmnqo{margin-top:var(--spacing-2xl);scroll-margin:180px}
.flex-row.svelte-14u7wbh.svelte-14u7wbh{align-items:center}#tracking-number.svelte-14u7wbh.svelte-14u7wbh{flex:1;border:1px solid var(--color-divider-strong);border-radius:var(--border-radius-m);padding:var(--spacing-m);width:0;min-width:150px}.courier-logo-wrapper.svelte-14u7wbh.svelte-14u7wbh{border:1px solid var(--color-divider-subtle);border-radius:var(--border-radius-full);padding:var(--spacing-s);width:34px;height:34px}.courier-logo-wrapper.svelte-14u7wbh img.svelte-14u7wbh{border-radius:var(--border-radius-full);-o-object-fit:cover;object-fit:cover}
.image-wrapper.svelte-s7hyad{position:relative;overflow:hidden}.image-wrapper.size-small.svelte-s7hyad{width:50px;height:50px;border-radius:var(--border-radius-s)}.image-wrapper.size-medium.svelte-s7hyad{width:100px;min-width:100px;height:80px;border-radius:var(--border-radius-s)}.image-wrapper.size-article-big.svelte-s7hyad{height:200px;min-height:200px;border-radius:var(--border-radius-m)}.image-wrapper.size-news-mobile.svelte-s7hyad{width:72px;min-width:72px;height:48px;border-radius:var(--border-radius-m)}.image-wrapper.svelte-s7hyad:before{background-color:var(--color-container-background);background-image:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/default-general.eZCOgMBm.svg);background-position:center;background-size:120%;content:"";height:100%;left:0;position:absolute;top:0;width:100%}.image-wrapper.type-news.svelte-s7hyad:before{background-image:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/default-news.DWAM5X4D.svg)}.image-wrapper.type-video.svelte-s7hyad:before{background-image:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/default-video.CYbpmWKu.svg)}.image-wrapper.type-person.svelte-s7hyad:before{background-image:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/default-person.DqJeowUA.svg)}.image-wrapper.type-product.svelte-s7hyad:before{background-image:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/default-product.DXso8Xux.svg)}.image-wrapper.type-recipe.svelte-s7hyad:before{background-image:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/default-recipe.DhiUw6JX.svg)}img.svelte-s7hyad{z-index:1;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;position:absolute;text-indent:-10000px}img.svelte-s7hyad:-moz-broken,img.svelte-s7hyad:not([src]){opacity:0}
section.svelte-1n6dlnx.svelte-1n6dlnx:not(:last-of-type){margin-bottom:var(--spacing-xl)}h5.svelte-1n6dlnx.svelte-1n6dlnx{display:flex;flex-direction:row;gap:6px;align-items:center}h5.svelte-1n6dlnx button.svelte-1n6dlnx:not(.btn--filled){color:var(--color-link-default)}ol.svelte-1n6dlnx.svelte-1n6dlnx,ul.svelte-1n6dlnx.svelte-1n6dlnx{margin:var(--spacing-m) 0 0 0;list-style-position:inside}ol.svelte-1n6dlnx li.svelte-1n6dlnx{counter-increment:table-ol;display:table-row}ol.svelte-1n6dlnx li.svelte-1n6dlnx:before{content:counter(table-ol) ".";display:table-cell;color:var(--color-text-tertiary);text-align:end;padding-inline-end:var(--spacing-m)}ul.svelte-1n6dlnx.svelte-1n6dlnx{list-style-type:none}li.svelte-1n6dlnx.svelte-1n6dlnx{margin-top:var(--spacing-s)}.example-uses.svelte-1n6dlnx.svelte-1n6dlnx{font-style:italic}.example-uses.svelte-1n6dlnx.svelte-1n6dlnx:before,.example-uses.svelte-1n6dlnx.svelte-1n6dlnx:after{content:"“"}.attribution.svelte-1n6dlnx.svelte-1n6dlnx{border:1px solid var(--color-divider-subtle);padding:var(--spacing-m) var(--spacing-l);border-radius:var(--border-radius-m);color:var(--color-text-tertiary)}.attribution.svelte-1n6dlnx cite.svelte-1n6dlnx{font-style:normal}.attribution.svelte-1n6dlnx.svelte-1n6dlnx:first-letter{text-transform:uppercase}.hidden.svelte-1n6dlnx.svelte-1n6dlnx{display:none}.labels.svelte-1n6dlnx.svelte-1n6dlnx{font-style:italic}#llm-snippet.svelte-1n6dlnx.svelte-1n6dlnx{margin-top:var(--spacing-2xl);scroll-margin:180px}
#chatllm-title.svelte-43tr6t{min-height:1.4rem}.is-mobile #chatllm-title.svelte-43tr6t{min-height:1.3rem}
a.svelte-6ps8ui.svelte-6ps8ui:visited{color:var(--color-link-visited)}.attr-inline-list.svelte-6ps8ui.svelte-6ps8ui{display:flex;flex-direction:row;color:var(--color-text-secondary);align-items:center;padding-top:var(--spacing-m)}.attr-inline-list.svelte-6ps8ui .icon{--size:var(--icon-xs);color:var(--color-gray-30);margin-right:var(--spacing-m)}.attr-inline-list-value.svelte-6ps8ui.svelte-6ps8ui{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap}section.svelte-6ps8ui.svelte-6ps8ui{margin-bottom:var(--spacing-l)}.chatllm-answer-list.svelte-6ps8ui.svelte-6ps8ui{min-height:104px}.chatllm-answer-list.expanded.svelte-6ps8ui.svelte-6ps8ui{display:flex;flex-direction:column;gap:var(--spacing-xl)}#chatllm-conversation.svelte-6ps8ui.svelte-6ps8ui{display:flex;flex-direction:column;gap:var(--spacing-xl);margin-top:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.reviews.hidden.svelte-6ps8ui.svelte-6ps8ui{visibility:hidden}.reviews.svelte-6ps8ui input.svelte-6ps8ui{opacity:0;position:absolute;pointer-events:none}.reviews.svelte-6ps8ui ul.svelte-6ps8ui{list-style-type:none;display:flex;flex-wrap:wrap;display:grid;grid-template-columns:repeat(3,1fr);grid-column-gap:var(--spacing-m);grid-row-gap:var(--spacing-m);margin:0}.reviews.svelte-6ps8ui li.svelte-6ps8ui{position:relative;opacity:0;transition:all ease-in .2s}.reviews.svelte-6ps8ui li.svelte-6ps8ui:nth-child(1){transition-delay:0}.reviews.svelte-6ps8ui li.svelte-6ps8ui:nth-child(2){transition-delay:.2s}.reviews.svelte-6ps8ui li.svelte-6ps8ui:nth-child(3){transition-delay:.4s}.reviews.svelte-6ps8ui li.reveal.svelte-6ps8ui{opacity:1}.reviews.svelte-6ps8ui li label.svelte-6ps8ui{padding:var(--spacing-m) var(--spacing-l);border:1px solid var(--color-divider-subtle);border-radius:var(--border-radius-m);display:flex;flex-direction:column;gap:var(--spacing-xs);transition:var(--transition-background-hover)}.reviews.svelte-6ps8ui li label.svelte-6ps8ui:hover{background:var(--color-container-highlight)}.reviews.svelte-6ps8ui li label.active.svelte-6ps8ui{border-color:var(--color-divider-interactive);background:var(--color-serp-container-interactive)}.reviews.svelte-6ps8ui li .btn.svelte-6ps8ui{width:-moz-min-content;width:min-content;--btn-font-size:.6rem;font-weight:400;font-family:var(--main-font)}.reviews.svelte-6ps8ui li.expanded.svelte-6ps8ui{grid-column-start:1;grid-column-end:4;border:0;border-top:1px solid var(--color-divider-subtle);border-radius:0;margin-top:var(--spacing-l);display:flex;flex-direction:column;gap:var(--spacing-l);padding:var(--spacing-l) var(--spacing-m) 0;opacity:1}.reviews.svelte-6ps8ui li.expanded .arrow.svelte-6ps8ui{position:absolute;border:solid var(--color-divider-subtle);border-width:0 1px 1px 0;display:inline-block;padding:5px;transform:rotate(-135deg);top:-6px;background:var(--color-serp-snippet-background);transition:left ease-in-out .4s}.reviews.svelte-6ps8ui li.expanded .arrow.column-1.svelte-6ps8ui{left:calc((100% - 2 * var(--spacing-xs)) / 3 / 2 - 8px)}.reviews.svelte-6ps8ui li.expanded .arrow.column-2.svelte-6ps8ui{left:calc(50% - 8px)}.reviews.svelte-6ps8ui li.expanded .arrow.column-3.svelte-6ps8ui{left:calc((100% - 2 * var(--spacing-xs)) / 3 * 2 + 2 * var(--spacing-xs) + (100% - 2 * var(--spacing-xs)) / 3 / 2 - 8px)}
a.svelte-1vzv1dy.svelte-1vzv1dy:visited{color:var(--color-link-visited)}.attr-inline-list.svelte-1vzv1dy.svelte-1vzv1dy{display:flex;flex-direction:row;color:var(--color-text-secondary);align-items:center;padding-top:var(--spacing-m)}.attr-inline-list.svelte-1vzv1dy .icon{--size:var(--icon-xs);color:var(--color-gray-30);margin-right:var(--spacing-m)}.attr-inline-list-value.svelte-1vzv1dy.svelte-1vzv1dy{align-items:center;display:flex;flex-direction:row}section.svelte-1vzv1dy.svelte-1vzv1dy{margin-bottom:var(--spacing-l)}.images-wrapper.svelte-1vzv1dy.svelte-1vzv1dy{padding:var(--spacing-xl) 0}.is-mobile section.svelte-1vzv1dy .contact-wrapper.svelte-1vzv1dy{display:grid;gap:var(--spacing-m);grid-template-columns:1fr 1fr 1fr 1fr}.is-mobile section.svelte-1vzv1dy .contact-wrapper.svelte-1vzv1dy .infobox-actions{padding:0;grid-column-start:1;grid-column-end:4}.map-wrapper.svelte-1vzv1dy.svelte-1vzv1dy{aspect-ratio:1/1;border-radius:var(--border-radius-m)}.chatllm-answer-list.svelte-1vzv1dy.svelte-1vzv1dy{display:flex;flex-direction:column;gap:var(--spacing-xl)}#chatllm-conversation.svelte-1vzv1dy.svelte-1vzv1dy{display:flex;flex-direction:column;gap:var(--spacing-xl);margin-top:var(--spacing-xl)}input.svelte-1vzv1dy.svelte-1vzv1dy{opacity:0;position:absolute;pointer-events:none}ul.reviews.svelte-1vzv1dy.svelte-1vzv1dy{list-style-type:none;display:flex;flex-wrap:wrap;display:grid;grid-template-columns:repeat(3,1fr);grid-column-gap:var(--spacing-m);grid-row-gap:var(--spacing-m);margin:0}li.svelte-1vzv1dy.svelte-1vzv1dy{position:relative}li.svelte-1vzv1dy label.svelte-1vzv1dy{padding:var(--spacing-m) var(--spacing-l);border:1px solid var(--color-divider-subtle);border-radius:var(--border-radius-m);display:flex;flex-direction:column;gap:var(--spacing-xs)}li.svelte-1vzv1dy label.active.svelte-1vzv1dy{border-color:var(--color-divider-interactive);background-color:var(--color-serp-container-interactive)}li.svelte-1vzv1dy .btn.svelte-1vzv1dy{width:-moz-min-content;width:min-content;--btn-font-size:.6rem;font-weight:400;font-family:var(--main-font)}li.expanded.svelte-1vzv1dy.svelte-1vzv1dy{grid-column-start:1;grid-column-end:4;border:0;border-top:1px solid var(--color-divider-subtle);border-radius:0;margin-top:var(--spacing-l);display:flex;flex-direction:column;gap:var(--spacing-l);padding:var(--spacing-m) var(--spacing-l)}li.expanded.svelte-1vzv1dy .arrow.svelte-1vzv1dy{position:absolute;border:solid var(--color-divider-subtle);border-width:0 1px 1px 0;display:inline-block;padding:5px;transform:rotate(-135deg);top:-6px;background:var(--color-serp-snippet-background);transition:left ease-in-out .4s}li.expanded.svelte-1vzv1dy .arrow.column-1.svelte-1vzv1dy{left:calc((100% - 2 * var(--spacing-xs)) / 3 / 2 - 8px)}li.expanded.svelte-1vzv1dy .arrow.column-2.svelte-1vzv1dy{left:calc(50% - 8px)}li.expanded.svelte-1vzv1dy .arrow.column-3.svelte-1vzv1dy{left:calc((100% - 2 * var(--spacing-xs)) / 3 * 2 + 2 * var(--spacing-xs) + (100% - 2 * var(--spacing-xs)) / 3 / 2 - 8px)}@media (max-width: 672px){.info-sections.svelte-1vzv1dy section.infobox-section{border-top:1px solid var(--color-divider-subtle)}}
section.svelte-1dc371a .infobox-images{padding-bottom:var(--spacing-2xl)}.contact-wrapper.svelte-1dc371a.svelte-1dc371a{border-top:1px solid var(--color-divider-subtle)}.contact-wrapper.svelte-1dc371a h6.svelte-1dc371a{padding:var(--spacing-2xl) 0 0;margin-bottom:0}.contact-wrapper.svelte-1dc371a.svelte-1dc371a:not(:has(.infobox-actions)){display:none}.profiles-wrapper.svelte-1dc371a.svelte-1dc371a:not(:empty){padding-top:var(--spacing-m)}
aside.svelte-1y4rc5{display:flex;flex-direction:column;gap:var(--spacing-2xl)}.fullwidth-divider.svelte-1y4rc5{border-bottom:1px solid var(--color-divider-subtle)}#side-news.svelte-1y4rc5{display:flex;flex-direction:column;gap:var(--spacing-xl)}.snippet-url.svelte-1y4rc5{align-items:center;color:var(--color-text-tertiary);display:flex;flex-wrap:wrap;padding-bottom:var(--spacing-xs)}.org-wrapper.svelte-1y4rc5{align-items:center;display:flex;gap:var(--spacing-m)}.news-snippet.svelte-1y4rc5{gap:var(--spacing-xl)}
.product-info.svelte-1b2b9nr.svelte-1b2b9nr{display:flex;flex-direction:column;height:100%}.product-info.type-tall.svelte-1b2b9nr .product-price-container.svelte-1b2b9nr{margin-top:var(--spacing-l)}.product-price.svelte-1b2b9nr.svelte-1b2b9nr{align-items:flex-start;color:var(--color-text-primary);display:flex;white-space:nowrap;gap:var(--spacing-xs)}.product-discount.svelte-1b2b9nr.svelte-1b2b9nr{margin-top:calc(-1 * var(--spacing-xs))}.product-discount.svelte-1b2b9nr .discount.svelte-1b2b9nr{color:var(--color-systemfeedback-error-text)}.product-discount.svelte-1b2b9nr .original-price.svelte-1b2b9nr{color:var(--color-text-tertiary);text-decoration:line-through;margin-left:var(--spacing-xs)}.product-discount[data-value="0"].svelte-1b2b9nr.svelte-1b2b9nr{visibility:hidden}.product-details-container.svelte-1b2b9nr.svelte-1b2b9nr{display:flex;flex-direction:column;justify-content:space-between;flex:1;container-type:inline-size}h6.svelte-1b2b9nr.svelte-1b2b9nr{color:var(--color-link-default);margin-top:.3rem;margin-bottom:0}.product-info.type-wide.svelte-1b2b9nr h6.svelte-1b2b9nr{margin-top:var(--spacing-s)}.product-details.svelte-1b2b9nr.svelte-1b2b9nr{display:flex;flex-direction:row;align-items:center;margin-top:var(--spacing-m)}.product-info.type-tall.svelte-1b2b9nr .product-details.svelte-1b2b9nr{justify-content:space-between}.product-info.type-wide.svelte-1b2b9nr .product-details.svelte-1b2b9nr{margin-top:var(--spacing-s);gap:var(--spacing-m)}.product-score.svelte-1b2b9nr.svelte-1b2b9nr{display:flex;flex-direction:row;align-items:center;gap:4px}.product-stars.svelte-1b2b9nr.svelte-1b2b9nr{display:flex;flex-direction:row}.reviews.svelte-1b2b9nr.svelte-1b2b9nr{color:var(--color-text-tertiary)}img.prime.svelte-1b2b9nr.svelte-1b2b9nr{height:12px;width:44px}@container (max-width: 135px){.product-details.svelte-1b2b9nr.svelte-1b2b9nr{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}}
.card.svelte-1im74bi.svelte-1im74bi{--card-width-offset:calc(var(--card-gutter, 24px) * (var(--cards, 3) - 1));width:calc((100% - var(--card-width-offset)) / var(--cards, 3));min-width:var(--min-width, calc((100% - var(--card-width-offset)) / var(--cards, 3)));position:relative;display:block;box-sizing:border-box;flex-shrink:0;overflow:hidden}.card.inset.svelte-1im74bi.svelte-1im74bi{box-shadow:none;border:var(--card-border-width, 1px) solid var(--color-divider-subtle)}.card.svelte-1im74bi a.svelte-1im74bi{display:flex;flex-direction:column;height:100%}.card.svelte-1im74bi a.svelte-1im74bi:focus-visible{box-shadow:none}.card.svelte-1im74bi a:focus-visible .card-body.svelte-1im74bi h2{border-radius:var(--border-radius-s);box-shadow:var(--focus-visible)}.card.svelte-1im74bi a.framed.svelte-1im74bi{padding:var(--spacing-xl)}.card.svelte-1im74bi a.framed .card-image.svelte-1im74bi{border-bottom:none}.card.svelte-1im74bi a.framed .card-image .img-bg.svelte-1im74bi{background-color:var(--card-img-bg, var(--color-neutral-10))}.card.svelte-1im74bi a.framed .card-body.svelte-1im74bi{padding-block:var(--spacing-m);padding-inline:0}.card.svelte-1im74bi a.framed .card-footer.svelte-1im74bi{padding:0}.card-image.svelte-1im74bi.svelte-1im74bi{position:relative;overflow:hidden}.card-image.svelte-1im74bi .img-bg.svelte-1im74bi{height:var(--card-img-height, 110px);position:relative;background-color:var(--card-img-bg, var(--color-neutral-10));background-size:cover;background-repeat:no-repeat;background-position:center;border-radius:var(--border-radius-m);width:100%;-o-object-fit:contain;object-fit:contain}.card.svelte-1im74bi .card-body.svelte-1im74bi{white-space:normal;padding:var(--spacing-m) 0;min-height:var(--min-card-body-height, 100px);flex:1}.card.svelte-1im74bi a.svelte-1im74bi:hover{text-decoration:none}.card.svelte-1im74bi .card-body.svelte-1im74bi h2:hover{text-decoration:underline}.card.svelte-1im74bi .card-footer.svelte-1im74bi{display:flex;flex-direction:row;padding:0;color:var(--color-text-tertiary);-moz-column-gap:8px;column-gap:8px;justify-content:flex-start;flex-wrap:wrap}.snippet:not(.standalone) .carousel-container.svelte-1j45xbw.svelte-1j45xbw{margin-top:var(--spacing-xl)}.carousel-container.svelte-1j45xbw.svelte-1j45xbw{position:relative}.carousel-container.svelte-1j45xbw .carousel.svelte-1j45xbw{display:flex;flex-wrap:nowrap;max-width:inherit;overflow:auto;--card-gutter:24px;gap:var(--card-gutter, 24px)}@media (max-width: 599px){.carousel-container.svelte-1j45xbw.svelte-1j45xbw{width:calc(100% + var(--spacing-2xl) * 2);margin-left:calc(var(--spacing-2xl) * -1)}.carousel-container.svelte-1j45xbw .carousel.svelte-1j45xbw{padding:0 var(--spacing-2xl)}.is-mobile .carousel-container.svelte-1j45xbw .carousel.svelte-1j45xbw{--cards:2.8}}@media (max-width: 499px){.is-mobile .carousel-container.svelte-1j45xbw .carousel.svelte-1j45xbw{--cards:1.8}}.slide-button.svelte-1j45xbw.svelte-1j45xbw{display:flex;align-items:center;justify-content:center;height:40px;width:40px;position:absolute;top:calc(50% - 20px);color:var(--color-icon-default);border:solid 1px var(--color-divider-subtle);border-radius:var(--border-radius-full);box-shadow:var(--elevation-01);background:var(--color-page-background);z-index:1}.slide-button.svelte-1j45xbw.svelte-1j45xbw:hover{box-shadow:var(--elevation-02);color:var(--color-link-default);background:var(--color-container-background)}.slide-left.svelte-1j45xbw.svelte-1j45xbw{left:-20px}.slide-right.svelte-1j45xbw.svelte-1j45xbw{right:-20px}.is-mobile .slide-button.svelte-1j45xbw.svelte-1j45xbw{display:none}
cite.svelte-1gnke8n{display:flex;flex-direction:row;color:var(--color-text-tertiary);align-items:center;gap:var(--spacing-s)}cite.svelte-1gnke8n:not(:last-child){margin-bottom:var(--spacing-m)}cite.svelte-1gnke8n img.favicon{--size:12px}h5.svelte-txmxg3{display:flex;flex-direction:row;align-items:center}h5.svelte-txmxg3 .icon{--size:18px;max-width:20px;margin-right:var(--spacing-m);color:var(--color-text-tertiary)}.snippet:not(.no-bg) h5.svelte-txmxg3 .icon{color:var(--color-icon-default)}.label-wrapper.svelte-8ong8z{position:absolute;inset-inline-end:var(--spacing-s);inset-block-start:var(--spacing-s)}h2.svelte-15mbvli{margin-bottom:0;color:var(--color-link-default)}.play-icon.svelte-15mbvli{position:absolute;width:46px;max-width:46px;height:46px;max-height:46px;top:calc(50% - 23px);left:calc(50% - 23px);display:flex}.play-icon.svelte-15mbvli .icon{color:#ffffffb3;color:color-mix(in srgb,var(--color-primitive-white),transparent 30%)}.duration.svelte-15mbvli{position:absolute;background:#0009;bottom:5px;right:5px;color:var(--color-primitive-white);padding:0px var(--spacing-s);border-radius:var(--border-radius-xs)}.play-icon.svelte-1aht6gh{position:absolute;color:#ffffffb3;width:46px;max-width:46px;height:46px;max-height:46px;top:calc(50% - 23px);left:calc(50% - 23px);display:flex}.duration.svelte-1aht6gh{position:absolute;background:#0009;bottom:5px;right:5px;color:var(--color-primitive-white);padding:0px var(--spacing-s);border-radius:var(--border-radius-xs)}
a.svelte-1ejc2r0{border:1px solid var(--color-divider-subtle);padding:0 var(--spacing-xl);border-radius:var(--border-radius-xl);display:flex;align-items:center;justify-content:center}a.svelte-1ejc2r0:hover{border-color:var(--color-gray-20);color:var(--color-text-secondary);text-decoration:underline}.primary.svelte-1ejc2r0{height:50px;min-width:106px}.secondary.svelte-1ejc2r0{background-color:transparent;border-radius:var(--border-radius-m);height:32px;min-width:80px}
banner.svelte-lytswd{align-items:center;background:var(--gradient-panel-background);border-radius:var(--border-radius-xl);bottom:64px;box-shadow:var(--elevation-05);color:var(--color-primitive-white);display:flex;gap:var(--spacing-3xl);justify-content:space-between;left:50%;max-width:535px;padding:var(--spacing-l) var(--spacing-xl);position:fixed;transform:translate(-50%);width:100%;z-index:101}.actions.svelte-lytswd{align-items:center;display:flex;gap:var(--spacing-l)}.btn-make-default.svelte-lytswd{background:var(--color-primitive-white);color:var(--color-primary-50);min-width:120px}.btn-make-default.svelte-lytswd:disabled{background:var(--color-primary-40);color:var(--color-primitive-white)}@media (prefers-color-scheme: dark){:root:not(.light) .btn-make-default.svelte-lytswd{color:var(--color-primary-30)}}:root.dark .btn-make-default.svelte-lytswd{color:var(--color-primary-30)}.btn-content.svelte-lytswd{align-items:center;display:flex;gap:var(--spacing-m)}.btn-close.svelte-lytswd{color:var(--color-primitive-white)}h4.svelte-lytswd{opacity:.8}h3.svelte-lytswd,h4.svelte-lytswd{margin:0;padding:0}.is-mobile banner.svelte-lytswd{align-items:flex-start;bottom:var(--spacing-m);flex-direction:column;gap:var(--spacing-m);left:var(--spacing-m);max-width:calc(100% - 2 * var(--spacing-m));right:var(--spacing-m);transform:none}
.card-grid.svelte-cts5mx{margin-top:var(--spacing-xl);--card-count:4;--card-gutter:var(--spacing-2xl);display:grid;grid-template-columns:repeat(var(--card-count),minmax(0,1fr));grid-auto-rows:1fr;gap:var(--card-gutter);--container-width:calc(min(100vw, 672px) - 2 * var(--spacing-2xl));--image-height:calc( ( (var(--container-width) - ((var(--card-count) - 1) * var(--card-gutter))) / var(--card-count) ) - (var(--spacing-l) * 2) - 2px );max-height:calc((var(--image-height) + var(--card-content-height, 134px) + var(--spacing-l) * 2) * 1.3 + var(--card-gutter));overflow:hidden;position:relative}.card-grid.expanded.svelte-cts5mx{max-height:100000px;transition:max-height .3s cubic-bezier(1,0,1,0)}@media (max-width: 599px){.card-grid.svelte-cts5mx{--card-count:3}}.card.svelte-1re0ivv.svelte-1re0ivv{position:relative;display:block;box-sizing:border-box;flex-shrink:0}.card.inset.svelte-1re0ivv.svelte-1re0ivv{box-shadow:none;border:var(--card-border-width, 1px) solid var(--color-divider-subtle)}.card.svelte-1re0ivv a.svelte-1re0ivv{display:flex;flex-direction:column;height:100%}.card.svelte-1re0ivv a.framed.svelte-1re0ivv{padding:var(--spacing-l)}.card.svelte-1re0ivv a.framed .card-image.svelte-1re0ivv{border-bottom:none}.card.svelte-1re0ivv a.framed .card-image .img-bg.svelte-1re0ivv{background-size:contain}.card.svelte-1re0ivv a.framed .card-body.svelte-1re0ivv{padding:0}.card-image.svelte-1re0ivv.svelte-1re0ivv{position:relative;padding:var(--spacing-m);background-color:var(--card-img-bg, var(--color-container-background));border:solid 1px var(--color-divider-subtle);border-radius:var(--border-radius-l);overflow:hidden;aspect-ratio:1}.card-image.svelte-1re0ivv .img-bg.svelte-1re0ivv{height:100%;position:relative;background-size:contain;background-repeat:no-repeat;background-position:center;border-radius:var(--border-radius-m);width:100%;-o-object-fit:contain;object-fit:contain}.card.svelte-1re0ivv .card-body.svelte-1re0ivv{white-space:normal;padding:var(--spacing-m) 0;min-height:var(--min-card-body-height, 130px);flex:1}.card.svelte-1re0ivv a.svelte-1re0ivv:hover{text-decoration:none}.card.svelte-1re0ivv .card-body.svelte-1re0ivv h2:hover{text-decoration:underline}.card.svelte-1re0ivv .card-footer.svelte-1re0ivv{display:flex;flex-direction:row;padding:0 var(--spacing-xl) var(--spacing-xl);color:var(--color-text-tertiary);-moz-column-gap:var(--spacing-m);column-gap:var(--spacing-m);justify-content:flex-start;flex-wrap:wrap}.shopping-product.svelte-1qwj8p2.svelte-1qwj8p2:hover{text-decoration:none}.shopping-product-image.svelte-1qwj8p2.svelte-1qwj8p2{width:96px;height:96px;min-width:96px;min-height:96px;max-width:96px;max-height:96px;padding:var(--spacing-l);background-color:var(--color-primitive-white);border:1px solid var(--color-divider-subtle);border-radius:var(--border-radius-s);overflow:hidden;justify-content:center}.shopping-product-image.svelte-1qwj8p2 img.svelte-1qwj8p2{-o-object-fit:contain;object-fit:contain;width:100%;max-height:100%}.shopping-product-info.svelte-1qwj8p2.svelte-1qwj8p2{padding:0 var(--spacing-l)}#shopping{--card-img-bg:var(--color-primitive-white)}#shopping .secondary-sponsored.svelte-nn3baj.svelte-nn3baj{display:flex;align-items:center;gap:4px}#shopping .secondary-sponsored.svelte-nn3baj .logo-img.svelte-nn3baj{margin-bottom:-8px;height:14px}.flex-column.svelte-nn3baj.svelte-nn3baj{margin-top:var(--spacing-xl)}@media (min-width: 699px){.flex-column.svelte-nn3baj.svelte-nn3baj{display:flex;flex-direction:column;gap:var(--spacing-l)}}
#map-view.svelte-3drb53.svelte-3drb53{background:var(--color-container-highlight);border-radius:var(--border-radius-l);display:block;height:200px;position:sticky;width:100%;z-index:1}#map-view-single.svelte-3drb53 ul.svelte-3drb53{list-style:none;flex:1}#map-view-single.svelte-3drb53 button.svelte-3drb53{background:var(--color-container-highlight);border-radius:var(--border-radius-l);display:block;height:85px;width:200px;z-index:1}#map-view-single.svelte-3drb53 .item{border-top:none}.is-mobile #map-view.svelte-3drb53.svelte-3drb53{position:relative;width:100%}.is-mobile #locations-cluster #spacer{margin-top:10px!important}ul.svelte-3drb53.svelte-3drb53{list-style:none;padding:0;margin:var(--spacing-2xl) 0 0 0;display:flex;flex-direction:column;gap:var(--spacing-2xl)}ul.svelte-3drb53 li>.item{border:1px solid transparent}ul.svelte-3drb53 li>button.item:hover{background-color:var(--color-container-highlight);margin:calc(-1 * var(--spacing-m));padding:var(--spacing-m);width:calc(100% + 2 * var(--spacing-m))!important;border:1px solid var(--color-divider-subtle);border-radius:var(--border-radius-l)}@media (max-width: 599px){#map-view-single.svelte-3drb53 button.svelte-3drb53{width:100px;height:75px}}
.fq-item.transitioning{background-color:var(--color-container-background)}.meta.svelte-gj2y3g.svelte-gj2y3g{display:flex;align-items:center;gap:var(--spacing-s);color:var(--color-text-tertiary);width:100%;margin-top:var(--spacing-s)}.meta.svelte-gj2y3g .favicon{margin-right:var(--spacing-s)}.meta.svelte-gj2y3g .dot.svelte-gj2y3g{opacity:.5;display:block;width:16px;text-align:center}.meta.svelte-gj2y3g .icon{--size:16px}.item.svelte-gj2y3g.svelte-gj2y3g{display:flex;flex-direction:row;align-items:center;gap:var(--spacing-xs)}.content.svelte-gj2y3g.svelte-gj2y3g{padding:var(--spacing-s) var(--spacing-6xl) var(--spacing-m) 0}.source.svelte-gj2y3g.svelte-gj2y3g{color:var(--color-text-interactive);display:inline-flex;align-items:center;gap:var(--spacing-s)}.source.svelte-gj2y3g .icon{--size:10px}.is-mobile .meta.svelte-gj2y3g.svelte-gj2y3g{flex-wrap:wrap}.is-mobile .item.svelte-gj2y3g.svelte-gj2y3g:first-of-type{width:100%}.is-mobile .dot.svelte-gj2y3g.svelte-gj2y3g:first-of-type{display:none}.is-mobile .content.svelte-gj2y3g.svelte-gj2y3g{padding:var(--spacing-m) 0}
hr.svelte-18i014p{border:0;border-top:1px solid var(--color-divider-subtle);margin:var(--spacing-xl) 0 0}
.faq-a.svelte-1ed5big{padding:var(--spacing-s) var(--spacing-6xl) var(--spacing-xl) 0}.faq-a.svelte-1ed5big p{font-size:inherit;margin-bottom:0}.is-mobile .faq-a.svelte-1ed5big{padding:var(--spacing-m) 0}
.chatllm-answer-list.svelte-1ug6bbb{display:flex;flex-direction:column;gap:var(--spacing-xl)}#chatllm-conversation.svelte-1ug6bbb{display:flex;flex-direction:column;gap:var(--spacing-xl);margin-top:var(--spacing-xl)}.chatllm-conversation-placeholder.svelte-1ug6bbb{height:54px}
.layout.svelte-ogngpg{display:flex;flex-direction:column;gap:var(--spacing-2xl)}
.content.svelte-1k7gile{background:var(--color-container-background);display:flex;flex-direction:column;gap:var(--spacing-xl);padding:var(--spacing-2xl)}
dialog.svelte-18s6c2m{margin:0;inset-inline-start:unset;inset-inline-end:calc(var(--spacing-2xl) + 2 * var(--spacing-s) + var(--icon-s) + var(--spacing-2xl));inset-block-start:calc(-1 * var(--nav-tabs-height) + -1 * var(--header-height) + var(--spacing-2xl) + var(--spacing-s));background-color:var(--color-container-background);background-image:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/browser_promo_bg_light.Cm1eeksL.svg);background-repeat:no-repeat;background-position:top center;background-size:100% auto;box-shadow:var(--elevation-02)!important;border-radius:var(--border-radius-xl);outline:none;border:none;width:364px;padding:calc(90px + var(--spacing-4xl)) var(--spacing-2xl) var(--spacing-2xl)}dialog.before-quick-goggles.svelte-18s6c2m{inset-inline-end:calc(var(--spacing-2xl) + 4 * var(--spacing-s) + 2 * var(--icon-s) + 2 * var(--spacing-2xl))}@media (max-width: 1720px){dialog.svelte-18s6c2m{width:321px;padding:calc(84px + var(--spacing-2xl)) var(--spacing-xl) var(--spacing-xl)}h3.desktop-heading-h3.svelte-18s6c2m{font-size:.8rem;letter-spacing:normal;line-height:1.3rem}}@media (max-width: 1670px){dialog.svelte-18s6c2m{width:260px;padding:calc(84px + var(--spacing-2xl)) var(--spacing-xl) var(--spacing-xl)}}@media (max-width: 1600px){dialog.svelte-18s6c2m{display:none}}@media (prefers-color-scheme: dark){:root:not(.light) dialog.svelte-18s6c2m{background-image:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/browser_promo_bg_dark.-zCu51ZN.svg)}}:root.dark dialog.svelte-18s6c2m{background-image:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/browser_promo_bg_dark.-zCu51ZN.svg)}
</style>
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/0.wwPTQE32.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/actions.Rop74u8Y.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/Footer.lP3wLPtR.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/ColumnLayout.ZV8O2j9Z.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.276Yb-DT.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/ContextMenu.DiF0FBYy.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/DSButton.Bfw99fS4.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/SettingsCard.Bo6YqUpF.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/FormSelect.Bm-0xpVy.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/Switch.CX0SnKLr.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/FeedbackContent.BmDqR8lR.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/Modal.CrfsUrMK.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/ContextMenuPane.Bd3LshpO.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/Suggest.CE6lwUQn.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/Favicon.4GrLHiMQ.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/QuickGoggleBadge.B7qawa9m.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/23.B9pVz7wf.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.COdQ7lIT.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/Snippet.BzCH9TSd.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/FullViewMobile.BK5VH161.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/FullViewPlaceInfobox.BE7Sc7BX.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/ErrorState.DoAXu_sD.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/PlaceInfobox.-N0ZQ7V9.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/RatingStars.C8ecJ7tj.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/ClientSideImageGrid.DApAJGWQ.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/GenericSnippet.D4Bee-d6.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/LiveLabel.Bfe_hBTN.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/UrlWithPath.BTijdM1T.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/LoadingState.uiWf8YFg.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/HeaderActions.BFvm8-oZ.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/OpeningHours.CHaK-BcG.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/ReviewsSection.foxhc8qU.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/RatingGraphic.Lr9_jd8k.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/InterpunctSpacer.BERLAGR-.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/ProfilesSection.Jl-M8qE6.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/InfoboxSection.BavwoI0S.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/AccordionItem.C4BtnaCO.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/maplibre-gl.CuCRB34y.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/InteractiveMap.BohZKyDm.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/maplibreUtils.CVuyfTMi.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/FullView.C17H7cJ7.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/keyboard.D5h1ECLI.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/FallbackSnippet.CxHMbn8Q.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/FilterListItem.DWeGZlRx.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/ManualLocationPicker.D13ndQNT.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/SnippetHeader.Caokl775.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/InlineEntityInfobox.BXtyFiWG.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/Generic.By6NM4az.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/AttributesSection.Bwtyz87S.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/LongDescriptionSection.kzuADeG7.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/RichFooter.BTHTafnK.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/InfoboxHeaderGraphic.C4YoMCmj.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/Place.jdG6A0rT.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/Codebox.mckeJo8H.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/BottomFade.B3xSJSf_.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/SummarizerInfoboxMain.BA41XBb_.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/markdown.D7tua3fV.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/TruncatedSnippet.CbSL1RQt.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/FullscreenChat.CRomP46D.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/ContextResults.C76zBmkm.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/ThemedPicture.DJBHz3q8.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/ChatLLMContent.DZgkkuqc.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.Cmc0M7rU.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.QnOy8CZ1.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/LLMSnippet.hwVbn5eu.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.C78kvMKh.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/WidgetHeader.BuowwKMJ.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/LoadingBar.C6U2yCGl.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/uPlotChart.Bijj2Rxl.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.Ge686pOt.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.e9T6UMlw.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/WidgetControl.T4SOCsE9.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.CaRg8WOl.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.B8gkpa57.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.BX4NJfye.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.D-zi6qD8.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.Xvfrz4fw.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.C77SOqNX.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.DezGxZ8l.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.A9VfVfp2.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.HLGRcSzT.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/Image.BffYBAEj.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.vCCqsrQl.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.B6B9blif.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.BZsc8Txr.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/Title.DUzt13J3.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/MainPlaceInfobox.DX1PCO_f.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/MainPlaceInfoboxMobile.BJ9p9v3L.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/SidePlaceInfobox.DGEo4H76.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/SummarizerInfoboxSide.KvmKi5Hl.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/ProductInfobox.DQPzyvFB.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/AmzShoppingProductInfo.DDUeULkU.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/CarouselNav.CuoKRb4-.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/RecipeCluster.nsxV1QBX.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/ExternalSearchButton.DAedbK31.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/BaseResult.R8soaWOQ.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/MakeDefault.D-OfA6dc.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/ShoppingGridAdV1.D-utu9fo.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/SimpleAd.CowicxeL.css" rel="stylesheet">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.BcVOgIcN.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.Lxx3BIv7.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/SnippetDivider.BjZ34tt1.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.oxnYXLqw.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/App.C_wVlTy3.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/AppSide.DgNrfcoI.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/QuickGogglesIntro.DtJAHIW5.css" rel="stylesheet" disabled="" media="(max-width: 0)">
<link href="./show me how to access a postgres server from a nodejs server - Brave Search_files/BraveBrowser.CHronNiQ.css" rel="stylesheet" disabled="" media="(max-width: 0)"><title>show me how to access a postgres server from a nodejs server - Brave Search</title><meta name="color-scheme" content=""><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="robots" content="noindex,nofollow"><meta name="description" content="Search the Web. Privately. Truly useful results, AI-powered answers, & more. All from an independent index. No profiling, no bias, no Big Tech."><meta property="og:site_name" content="Brave Search"><meta property="og:type" content="website"><meta property="og:url" content="https://search.brave.com/"><meta property="og:title" content="Brave Search"><meta property="og:description" content="Search the Web. Privately. Truly useful results, AI-powered answers, & more. All from an independent index. No profiling, no bias, no Big Tech."><meta property="og:locale" content="en-us"><meta property="og:image" content="https://cdn.search.brave.com/serp/v2/_app/immutable/assets/ogImg.DqcWnT-h.png"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Brave Search"><meta name="twitter:description" content="Search the Web. Privately. Truly useful results, AI-powered answers, & more. All from an independent index. No profiling, no bias, no Big Tech."><meta name="twitter:image" content="https://cdn.search.brave.com/serp/v2/_app/immutable/assets/ogImg.DqcWnT-h.png"><meta name="keywords" content="brave, search"><meta name="referrer" content="strict-origin-when-cross-origin"><meta name="msapplication-TileColor" content="#da532c"><meta name="theme-color" media="(prefers-color-scheme: light)" content="#ffffff"> <meta name="theme-color" media="(prefers-color-scheme: dark)" content="#242731"><meta name="summarizer-key" content="a4e955171c4fc22f74361a"><link rel="search" type="application/opensearchdescription+xml" title="Brave Search" href="https://cdn.search.brave.com/serp/v2/_app/immutable/assets/opensearch.BqerUIGT.xml"><link rel="apple-touch-icon" sizes="180x180" href="https://cdn.search.brave.com/serp/v2/_app/immutable/assets/apple-touch-icon.Bqba6l0U.png"><link rel="icon" type="image/png" sizes="32x32" href="https://cdn.search.brave.com/serp/v2/_app/immutable/assets/favicon-32x32.B2iBzfXZ.png"><link rel="icon" type="image/png" sizes="16x16" href="https://cdn.search.brave.com/serp/v2/_app/immutable/assets/favicon-16x16.nT_pLL7v.png"><link rel="icon" type="image/svg+xml" href="https://cdn.search.brave.com/serp/v2/_app/immutable/assets/brave-search-icon.CsIFM2aN.svg"><link rel="icon" href="https://cdn.search.brave.com/serp/v2/_app/immutable/assets/favicon.acxxetWH.ico"><link rel="manifest" crossorigin="anonymous" href="https://cdn.search.brave.com/serp/v2/_app/immutable/assets/site-webmanifest.CJg7FGBq"><link rel="mask-icon" href="https://cdn.search.brave.com/serp/v2/_app/immutable/assets/safari-pinned-tab.j7w9CBgY.svg"><!-- HTML_TAG_START --><!-- HTML_TAG_END -->
<style type="text/css">
@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:400;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-latin-400-normal.BOOGhInR.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-latin-400-normal.gitzw0hO.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:600;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-latin-600-normal.D273HNI0.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-latin-600-normal.B5cFAncS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:400;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-cyrillic-400-normal.BLGc9T1a.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-cyrillic-400-normal.ZzOtrSSW.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:600;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-cyrillic-600-normal.BGBWG807.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-cyrillic-600-normal.BuzJQFbW.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:400;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-cyrillic-ext-400-normal.Dc4VJyIJ.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-cyrillic-ext-400-normal.BPnxn4xp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:600;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-cyrillic-ext-600-normal.CaqZN2hq.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-cyrillic-ext-600-normal.Bt9VVOA-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:400;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-greek-400-normal.DxZsaF_h.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-greek-400-normal.BZzXV7-1.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:600;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-greek-600-normal.Dhlb-90d.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-greek-600-normal.CwicyhtI.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:400;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-greek-ext-400-normal.Bput3-QP.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-greek-ext-400-normal.DCpCPQOf.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:600;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-greek-ext-600-normal.Cnui8OiR.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-greek-ext-600-normal.C9WLioJ8.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:400;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-latin-ext-400-normal.hnt3BR84.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-latin-ext-400-normal.C1t-h-pH.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:600;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-latin-ext-600-normal.BnYJhD27.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-latin-ext-600-normal.CAF0vJDd.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:400;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-vietnamese-400-normal.DMkecbls.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-vietnamese-400-normal.BUNmGMP1.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:optional;font-weight:600;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-vietnamese-600-normal.Cc8MFFhd.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/inter-vietnamese-600-normal.Cm6aH8_k.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Poppins;font-style:normal;font-display:optional;font-weight:400;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/poppins-latin-400-normal.cpxAROuN.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/poppins-latin-400-normal.BOb3E3N0.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-display:optional;font-weight:600;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/poppins-latin-600-normal.zEkxB9Mr.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/poppins-latin-600-normal.BJdTmd5m.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-display:optional;font-weight:400;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/poppins-latin-ext-400-normal.CIpeJEZw.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/poppins-latin-ext-400-normal.Ce_uWq1Z.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-display:optional;font-weight:600;src:url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/poppins-latin-ext-600-normal.Cn4C8475.woff2) format("woff2"),url(https://cdn.search.brave.com/serp/v2/_app/immutable/assets/poppins-latin-ext-600-normal.DB6FJURc.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--brand-font: "Poppins", Helvetica, sans-serif;--main-font: "Inter", Helvetica, sans-serif;--mono-font: ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", "Oxygen Mono", "Ubuntu Monospace", "Source Code Pro", "Fira Mono", "Droid Sans Mono", "Courier New", monospace;--system-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"}html{font-size:20px;line-height:1.6;box-sizing:border-box;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;-ms-text-size-adjust:100%}body{font-size:.8rem;font-family:var(--main-font);font-weight:400;font-style:normal;text-rendering:optimizeLegibility}.desktop-heading-display1{font-family:var(--brand-font);font-size:2.3rem;font-style:normal;font-weight:600;letter-spacing:-.5px;line-height:2.7rem}.desktop-heading-display2{font-family:var(--brand-font);font-size:2rem;font-style:normal;font-weight:600;letter-spacing:-.5px;line-height:2.4rem}.desktop-heading-display3{font-family:var(--brand-font);font-size:1.7rem;font-style:normal;font-weight:600;letter-spacing:-.5px;line-height:2rem}.desktop-heading-h1{font-family:var(--brand-font);font-size:1.6rem;font-style:normal;font-weight:600;letter-spacing:-.5px;line-height:2.1rem}.desktop-heading-h2{font-family:var(--brand-font);font-size:1.4rem;font-style:normal;font-weight:600;letter-spacing:-.5px;line-height:1.8rem}.desktop-heading-h3,.post-body h3{font-family:var(--brand-font);font-size:1.1rem;font-style:normal;font-weight:600;letter-spacing:-.5px;line-height:1.4rem}.desktop-heading-h4,.post-body h4{font-family:var(--brand-font);font-size:.8rem;font-style:normal;font-weight:600;letter-spacing:normal;line-height:1.3rem}.desktop-large-semibold{font-family:var(--main-font);font-size:.8rem;font-style:normal;font-weight:600;letter-spacing:-.2px;line-height:1.2rem}.desktop-large-regular{font-family:var(--main-font);font-size:.8rem;font-style:normal;font-weight:400;letter-spacing:normal;line-height:1.2rem}.desktop-default-semibold{font-family:var(--main-font);font-size:.7rem;font-style:normal;font-weight:600;letter-spacing:normal;line-height:1.1rem}.desktop-default-regular{font-family:var(--main-font);font-size:.7rem;font-style:normal;font-weight:400;letter-spacing:normal;line-height:1.1rem}.desktop-small-semibold{font-family:var(--main-font);font-size:.6rem;font-style:normal;font-weight:600;letter-spacing:normal;line-height:.9rem}.desktop-small-regular{font-family:var(--main-font);font-size:.6rem;font-style:normal;font-weight:400;letter-spacing:normal;line-height:.9rem}.desktop-xsmall-semibold{font-family:var(--main-font);font-size:.55rem;font-style:normal;font-weight:600;letter-spacing:normal;line-height:.8rem}.desktop-xsmall-regular{font-family:var(--main-font);font-size:.55rem;font-style:normal;font-weight:400;letter-spacing:normal;line-height:.8rem}.heading-serpresult{font-family:var(--main-font);font-size:.95rem;font-style:normal;font-weight:400;letter-spacing:normal;line-height:1.3rem}.t-primary{color:var(--color-text-primary)}.t-secondary{color:var(--color-text-secondary)}.t-tertiary{color:var(--color-text-tertiary)}.t-interactive{color:var(--color-text-interactive)}.t-link{color:var(--color-link-default)}.t-icon-default{color:var(--color-icon-default)}.t-gradient-icons-active{background:linear-gradient(356deg,#fa7250 8.49%,#ff1893 43.72%,#a78aff 99.51%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.d-invisible{visibility:hidden}
</style>
<link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/nodes/0.DM-PG6n0.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/entry.Cm9Y3HZx.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/scheduler.BS-H26JQ.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/streaming.xGDZBrUQ.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/utils.jVwhSXTD.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/constants.xYfNyWcy.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/index.D_5oDYyZ.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/globals.D0QH3NT1.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/actions.D57MXSd1.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/spread.CgU5AtxT.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/index.BroOVOro.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/stores.DHyGK8vR.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/Footer.C0jTjqZ4.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/i18n.CrhQFylW.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/ColumnLayout.C4L2PlGc.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/App.DggWD-FC.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/carat_right.BadYTkgM.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/premium.DK0fCaDu.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/ContextMenu.CWap8noc.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/scroll.CdiUwJ08.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/DSButton.DAVNK6VB.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/loading_spin.B94MIYbu.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/subscriptions.DtlQ2All.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/SettingsCard.DSPjg0W3.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/each.CcK4bLHQ.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/forms.mh_gHs53.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/parameters.2pI_uGEk.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/FormSelect.CbRJNcCO.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/Switch.tAVIwZTV.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/ai_generate.CBoPgUQ-.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/star_outline.B2r4bIz5.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/TranslateDynamic.CDpM6Ny9.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/FeedbackContent.BVFoKsTk.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/options.CroKTYBp.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/Modal.q6Z5XfJQ.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/ContextMenuPane.D8evku5a.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/Suggest.axmgSsWu.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/check.BtntycQk.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/arrow_up.DV7JPC11.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/arrow_right.DvhTM5Sg.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/search_new.DtoqU6UJ.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/brave-logo-light.C8go9zrK.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/brave-logo-small.BORt5RmW.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/environment.DSkwmRe4.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/goggles.D-S9cSYG.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/info_outline.2bwvNACp.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/thumbs_up.xqhThFId.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/trash.sCIcAzDq.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/Favicon.BMVU_HLN.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/QuickGoggleBadge.CqvsQTRe.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/image.4xYJZeFb.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/movie.Dn0BDLTG.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/news.CHS29Cw-.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/tune_small.81GThJvE.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/hashRouterV2.B_vOT0Uy.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/utils.Bg1_KjVA.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/nodes/1.De8xmgAn.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/SiteFooter.B8mLy43H.js"><link rel="stylesheet" crossorigin="" href="./show me how to access a postgres server from a nodejs server - Brave Search_files/SiteFooter.oImuCdMH.css"><link rel="stylesheet" crossorigin="" href="./show me how to access a postgres server from a nodejs server - Brave Search_files/1.D9DSP9OL.css"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/nodes/23.DxgDTt97.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/preload-helper.C1FmrZbK.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/App.e1d1mDoU.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/await_block.95vTCcNY.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/Snippet.D4m50UgW.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/keyboard.By2Wz8yJ.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/navigate_before.mSFZX_OJ.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/FallbackSnippet.5BTqO3WB.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/language.EwCiBoTW.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/FilterListItem.BeBoF_Fj.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/location_on.NcInnLSE.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/arrow_back_alternative.BDyemA3y.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/calendar.BULTyDxu.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/dateFormatters.SmjCX7Zs.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/utils.LOyU985E.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/more_vertical.DQxPBdXy.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/InterpunctSpacer.xbP_yKmH.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/SnippetHeader.NjZwnB_p.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/FloatingInfoboxHandler.DeQzEr-f.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/RecipeCluster.CRhyrhlC.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/LiveLabel.BPIXKYnM.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/CarouselNav.cKp4mOtJ.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/default-recipe.CXCNv6pG.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/GenericSnippet.DAhV27QG.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/urls.g3w6-5aw.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/UrlWithPath.BjJUEHCP.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/RatingGraphic.GCjhuaZI.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/RatingStars.DClKQNGL.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/App.BfJyaeno.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/context.hWrDYXud.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/RichHeaderContent.BjBrDiho.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/ErrorBoundary.DfXqp6ZZ.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/ExternalSearchButton.D2MdJNA0.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/BaseResult.CWAOsTRm.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/BottomFade.8ZCvqO4G.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/prism.DCcxpBt-.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/default-product.BQn6sO1b.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/search_phone.BbPcHI7Z.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/App.xq8AEvAu.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/TruncatedSnippet.DyErLgCO.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/carat_up.BPBPb1Wv.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/FullscreenChat.CoO7vYZe.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/ClientSideImageGrid.BnfGUCVn.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/images.DQakZ1Yn.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/ContextResults.DcGFZAhf.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/ErrorState.BAvbMb_T.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/warning_triangle.CaQ3aziX.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/arrow_diagonal_up_right.C5MMDOu9.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/InfoboxSection.DZFZBCZR.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/AccordionItem.Dr-pghlz.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/LoadingState.B87E1nkC.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/ThemedPicture.CNnMuXOd.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/Title.Bl370tRF.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/AppSide.CwE7coTS.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/Codebox.CjEezBZo.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/RichFooter.D0WDwR7e.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/ChatLLMContent.DGgTOZL_.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/ChatLLMContent.svelte_svelte_type_style_lang.DbjfW9EX.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/code.DzUSnguv.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/check_circle.BqCxYul0.js"><link rel="modulepreload" as="script" crossorigin="" href="https://cdn.search.brave.com/serp/v2/_app/immutable/chunks/new_tab.DxFWkkgR.js"><link rel="stylesheet" crossorigin="" href="./show me how to access a postgres server from a nodejs server - Brave Search_files/github-dark.BEHUn5zE.css"></head>
<body class="is-pc is-serp">
<div style="display: contents"> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="height:0;position:absolute;width:0"><defs><lineargradient id="gradient-search-navigation" x1="16.53" x2="-.379" y1="15.918" y2="3.159" gradientUnits="userSpaceOnUse"><stop stop-color="#bf14a2"></stop><stop offset="1" stop-color="#f73a1c"></stop></lineargradient><lineargradient id="gradient-icons-active" x1="15.7209" y1="15.4637" x2="1.49001" y2="1.5181" gradientUnits="userSpaceOnUse"><stop offset="0.0260417" stop-color="#fa7250"></stop><stop offset="0.401042" stop-color="#ff1893"></stop><stop offset="0.994792" stop-color="#a78aff"></stop></lineargradient></defs></svg> <div id="main"> <header id="site-header" class="svelte-1ouvo8z floating" style="top: 0px;"><div class="header-content-wrapper svelte-1ouvo8z"><div class="header-content svelte-1ouvo8z"><a href="https://search.brave.com/" class="nav-logo btn btn-link svelte-1ouvo8z" data-sveltekit-reload="" data-svelte-h="svelte-vhswfx"><img alt="Brave logo" class="logo logo-large theme--light svelte-1ouvo8z" title="Brave Search" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/brave-logo-light.BR9nBcVE.svg" width="103" height="32"> <img alt="Brave logo" class="logo logo-large theme--dark svelte-1ouvo8z" title="Brave Search" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/brave-logo-dark.Bg87GL4b.svg" width="103" height="32"> <img alt="Brave logo" class="logo logo-small svelte-1ouvo8z" title="Brave Search" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/brave-logo-small.1fMdoHsa.svg" width="28" height="32"></a> <div class="searchform-container svelte-16mxc77 llm-enabled compact" data-testid="searchform-container"><form id="searchform" method="GET" action="https://search.brave.com/search" target="_self" data-sveltekit-reload="" data-testid="searchform" class="svelte-16mxc77"><button id="submit-button-hidden" class="svelte-16mxc77"></button> <div id="search-icon" class="svelte-16mxc77"><div class="icon-wrapper svelte-16mxc77"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M10.498 2a8.498 8.498 0 1 0 5.843 14.67l4.292 4.291a.8.8 0 1 0 1.131-1.13l-4.367-4.368A8.498 8.498 0 0 0 10.499 2M3.6 10.498a6.898 6.898 0 1 1 13.797 0 6.898 6.898 0 0 1-13.797 0" clip-rule="evenodd"></path></svg></div></div> <input id="searchbox" rows="1" type="text" class="desktop-large-regular styled-scrollbar svelte-16mxc77" placeholder="Search the web privately…" name="q" autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" aria-label="Search" title="Search" aria-autocomplete="both" aria-haspopup="false" maxlength="2048" value="show me how to access a postgres server from a nodejs server" enterkeyhint="search" data-testid="searchbox"> <div id="searchform-actions" class="svelte-16mxc77"><button id="clear-query-button" type="reset" class="searchform-actions-button tooltip svelte-16mxc77" aria-label="Clear" data-testid="clear-query-button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M5.287 5.287a.85.85 0 0 0 0 1.202L10.797 12l-5.51 5.511a.85.85 0 0 0 1.202 1.202L12 13.203l5.51 5.51a.85.85 0 0 0 1.202-1.203L13.202 12l5.51-5.51a.85.85 0 0 0-1.202-1.202L12 10.798 6.489 5.287a.85.85 0 0 0-1.202 0" clip-rule="evenodd"></path></svg></button> <div id="clear-query-divider" class="svelte-16mxc77"></div> <button id="submit-button" class="searchform-actions-button tooltip svelte-16mxc77" aria-label="Search" data-testid="submit-button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M10.498 2a8.498 8.498 0 1 0 5.843 14.67l4.292 4.291a.8.8 0 1 0 1.131-1.13l-4.367-4.368A8.498 8.498 0 0 0 10.499 2M3.6 10.498a6.898 6.898 0 1 1 13.797 0 6.898 6.898 0 0 1-13.797 0" clip-rule="evenodd"></path></svg></button> <div class="subutton-wrapper noscript-hide svelte-1xz7e78"><div class="subutton-tooltip-wrapper tooltip--bottom" aria-label="Answer with AI"><button id="submit-llm-button" class="subutton svelte-1xz7e78 done" aria-label="Answer with AI" disabled=""><div class="check-icon svelte-1xz7e78" style=""><svg xmlns="http://www.w3.org/2000/svg" class="icon" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M13.019 3.556a.8.8 0 0 0-1.119.15L6.65 10.6 4.03 7.98A.798.798 0 1 0 2.9 9.11l3.266 3.265a.798.798 0 0 0 1.199-.08l5.805-7.62a.8.8 0 0 0-.151-1.118Z" clip-rule="evenodd"></path></svg></div> </button></div> </div></div> <input name="source" type="hidden" value="web"> <input name="" type="hidden" id="goggleQueryParam" value=""> <div id="autocomplete" class="svelte-16mxc77"></div></form></div></div> <div id="settings" class="svelte-1ouvo8z"> <div class="settings svelte-1u7wgmq"> <button id="settings-button" class="settings-button noscript-hide tooltip tooltip--bottom-left tooltip--delay-500 svelte-1u7wgmq" aria-label="Quick settings"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M8.75 3.63C8.907 2.69 9.72 2 10.675 2h2.65c.955 0 1.769.69 1.925 1.63l.219 1.31c.017.104.095.23.256.319q.127.07.25.145c.157.095.306.1.405.062L17.624 5a1.95 1.95 0 0 1 2.374.852l1.325 2.296a1.95 1.95 0 0 1-.45 2.482l-1.026.845c-.081.067-.151.198-.148.38a8 8 0 0 1 0 .29c-.003.182.067.313.148.38l1.027.845c.736.606.926 1.656.45 2.482l-1.326 2.296a1.95 1.95 0 0 1-2.375.852l-1.243-.466c-.099-.037-.248-.033-.405.062q-.123.075-.25.145c-.16.089-.24.215-.256.32l-.219 1.309A1.95 1.95 0 0 1 13.326 22h-2.652c-.953 0-1.767-.69-1.924-1.63l-.218-1.31c-.018-.104-.096-.23-.256-.319a8 8 0 0 1-.251-.145c-.157-.095-.306-.1-.405-.062L6.377 19a1.95 1.95 0 0 1-2.375-.852l-1.325-2.296a1.95 1.95 0 0 1 .45-2.482l1.026-.845.51.619-.51-.619c.081-.067.151-.198.148-.38a8 8 0 0 1 0-.29c.003-.182-.067-.313-.148-.38l-1.027-.845a1.95 1.95 0 0 1-.45-2.482l1.326-2.296A1.95 1.95 0 0 1 6.377 5l1.243.466c.1.037.248.033.405-.062q.124-.075.25-.145c.161-.089.24-.215.257-.32zm1.925-.027a.35.35 0 0 0-.344.29l-.218 1.31c-.11.66-.543 1.171-1.061 1.458a6 6 0 0 0-.199.115c-.507.306-1.167.426-1.795.191l-1.244-.466a.35.35 0 0 0-.424.152L4.065 8.95a.35.35 0 0 0 .08.444l1.027.845c.516.425.742 1.054.731 1.647a6 6 0 0 0 0 .23c.011.593-.215 1.222-.731 1.647l-1.027.845-.51-.618.51.618a.35.35 0 0 0-.08.444l1.325 2.296a.35.35 0 0 0 .424.152l1.244-.466c.628-.235 1.288-.115 1.795.191q.099.06.199.115c.518.287.95.797 1.06 1.458l.219 1.31a.35.35 0 0 0 .344.29h2.65a.35.35 0 0 0 .344-.29l.219-1.31c.11-.66.543-1.171 1.06-1.458a6 6 0 0 0 .199-.115c.508-.306 1.167-.426 1.795-.191l1.244.466c.16.06.339-.005.424-.152l1.325-2.296a.35.35 0 0 0-.08-.444l-1.026-.845c-.517-.425-.743-1.054-.732-1.647a6 6 0 0 0 0-.23c-.011-.593.215-1.222.732-1.647l1.026-.845a.35.35 0 0 0 .08-.444L18.61 6.653a.35.35 0 0 0-.424-.152l-1.244.466c-.628.235-1.287.115-1.795-.191a6 6 0 0 0-.199-.115c-.518-.287-.95-.797-1.06-1.458l-.219-1.31a.35.35 0 0 0-.343-.29zM12 9.735a2.265 2.265 0 1 0 0 4.53 2.265 2.265 0 0 0 0-4.53M8.132 12a3.868 3.868 0 1 1 7.735 0 3.868 3.868 0 0 1-7.735 0" clip-rule="evenodd"></path></svg></button> <a class="settings-button noscript-block svelte-1u7wgmq" href="https://search.brave.com/settings" aria-label="Settings" data-sveltekit-reload=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M8.75 3.63C8.907 2.69 9.72 2 10.675 2h2.65c.955 0 1.769.69 1.925 1.63l.219 1.31c.017.104.095.23.256.319q.127.07.25.145c.157.095.306.1.405.062L17.624 5a1.95 1.95 0 0 1 2.374.852l1.325 2.296a1.95 1.95 0 0 1-.45 2.482l-1.026.845c-.081.067-.151.198-.148.38a8 8 0 0 1 0 .29c-.003.182.067.313.148.38l1.027.845c.736.606.926 1.656.45 2.482l-1.326 2.296a1.95 1.95 0 0 1-2.375.852l-1.243-.466c-.099-.037-.248-.033-.405.062q-.123.075-.25.145c-.16.089-.24.215-.256.32l-.219 1.309A1.95 1.95 0 0 1 13.326 22h-2.652c-.953 0-1.767-.69-1.924-1.63l-.218-1.31c-.018-.104-.096-.23-.256-.319a8 8 0 0 1-.251-.145c-.157-.095-.306-.1-.405-.062L6.377 19a1.95 1.95 0 0 1-2.375-.852l-1.325-2.296a1.95 1.95 0 0 1 .45-2.482l1.026-.845.51.619-.51-.619c.081-.067.151-.198.148-.38a8 8 0 0 1 0-.29c.003-.182-.067-.313-.148-.38l-1.027-.845a1.95 1.95 0 0 1-.45-2.482l1.326-2.296A1.95 1.95 0 0 1 6.377 5l1.243.466c.1.037.248.033.405-.062q.124-.075.25-.145c.161-.089.24-.215.257-.32zm1.925-.027a.35.35 0 0 0-.344.29l-.218 1.31c-.11.66-.543 1.171-1.061 1.458a6 6 0 0 0-.199.115c-.507.306-1.167.426-1.795.191l-1.244-.466a.35.35 0 0 0-.424.152L4.065 8.95a.35.35 0 0 0 .08.444l1.027.845c.516.425.742 1.054.731 1.647a6 6 0 0 0 0 .23c.011.593-.215 1.222-.731 1.647l-1.027.845-.51-.618.51.618a.35.35 0 0 0-.08.444l1.325 2.296a.35.35 0 0 0 .424.152l1.244-.466c.628-.235 1.288-.115 1.795.191q.099.06.199.115c.518.287.95.797 1.06 1.458l.219 1.31a.35.35 0 0 0 .344.29h2.65a.35.35 0 0 0 .344-.29l.219-1.31c.11-.66.543-1.171 1.06-1.458a6 6 0 0 0 .199-.115c.508-.306 1.167-.426 1.795-.191l1.244.466c.16.06.339-.005.424-.152l1.325-2.296a.35.35 0 0 0-.08-.444l-1.026-.845c-.517-.425-.743-1.054-.732-1.647a6 6 0 0 0 0-.23c-.011-.593.215-1.222.732-1.647l1.026-.845a.35.35 0 0 0 .08-.444L18.61 6.653a.35.35 0 0 0-.424-.152l-1.244.466c-.628.235-1.287.115-1.795-.191a6 6 0 0 0-.199-.115c-.518-.287-.95-.797-1.06-1.458l-.219-1.31a.35.35 0 0 0-.343-.29zM12 9.735a2.265 2.265 0 1 0 0 4.53 2.265 2.265 0 0 0 0-4.53M8.132 12a3.868 3.868 0 1 1 7.735 0 3.868 3.868 0 0 1-7.735 0" clip-rule="evenodd"></path></svg></a> </div></div></div></header> <div id="site-header-spacer" class="svelte-1ouvo8z"></div> <div id="nav-tabs" class="svelte-jumeuw"><div class="nav-tabs-content svelte-jumeuw"><nav class="tabs svelte-jumeuw"><ul id="primary-tabs" class="noscrollbar svelte-jumeuw"><li class="tab-item svelte-1bd2u3s active"><a href="https://search.brave.com/search?q=show%20me%20how%20to%20access%20a%20postgres%20server%20from%20a%20nodejs%20server" data-sveltekit-reload="" class="svelte-1bd2u3s desktop-default-semibold"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M10.498 2a8.498 8.498 0 1 0 5.843 14.67l4.292 4.291a.8.8 0 1 0 1.131-1.13l-4.367-4.368A8.498 8.498 0 0 0 10.499 2M3.6 10.498a6.898 6.898 0 1 1 13.797 0 6.898 6.898 0 0 1-13.797 0" clip-rule="evenodd"></path></svg> <span>All</span></a></li> <li class="tab-item svelte-1bd2u3s"><a href="https://search.brave.com/images?q=show%20me%20how%20to%20access%20a%20postgres%20server%20from%20a%20nodejs%20server" data-sveltekit-reload="" class="svelte-1bd2u3s desktop-default-regular"> <span>Images</span></a></li> <li class="tab-item svelte-1bd2u3s"><a href="https://search.brave.com/news?q=show%20me%20how%20to%20access%20a%20postgres%20server%20from%20a%20nodejs%20server" data-sveltekit-reload="" class="svelte-1bd2u3s desktop-default-regular"> <span>News</span></a></li> <li class="tab-item svelte-1bd2u3s"><a href="https://search.brave.com/videos?q=show%20me%20how%20to%20access%20a%20postgres%20server%20from%20a%20nodejs%20server" data-sveltekit-reload="" class="svelte-1bd2u3s desktop-default-regular"> <span>Videos</span></a></li> <li class="tab-item svelte-1bd2u3s"><a href="https://search.brave.com/goggles?q=show%20me%20how%20to%20access%20a%20postgres%20server%20from%20a%20nodejs%20server" data-sveltekit-reload="" class="svelte-1bd2u3s desktop-default-regular"> <span>Goggles</span></a></li></ul> <ul id="secondary-tabs" class="svelte-jumeuw"> <li id="tools-filters" class="svelte-jumeuw"><button class="nav-icon tooltip tooltip--delay-500 svelte-jumeuw tooltip--bottom" aria-label="Filters"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M13.82 19.333H3.834a.834.834 0 0 1 0-1.666h9.988A2.49 2.49 0 0 1 16.167 16c1.085 0 2 .698 2.346 1.667h1.654a.834.834 0 0 1 0 1.666h-1.654A2.5 2.5 0 0 1 16.167 21c-1.085 0-2.001-.7-2.346-1.667M17 18.5a.834.834 0 1 0-1.668.002A.834.834 0 0 0 17 18.5M5.487 12.833H3.833a.834.834 0 0 1 0-1.666h1.654A2.5 2.5 0 0 1 7.833 9.5c1.085 0 2.001.7 2.347 1.667h9.987a.834.834 0 0 1 0 1.666H10.18A2.5 2.5 0 0 1 7.833 14.5c-1.085 0-2-.698-2.346-1.667M8.667 12a.834.834 0 1 0-1.669.002A.834.834 0 0 0 8.667 12m.986-5.667h-5.82a.834.834 0 0 1 0-1.666h5.82A2.495 2.495 0 0 1 12 3c1.085 0 2.002.698 2.347 1.667h5.82a.834.834 0 0 1 0 1.666h-5.82A2.5 2.5 0 0 1 12 8c-1.085 0-2.002-.7-2.347-1.667m3.18-.833A.835.835 0 0 0 12 4.667a.835.835 0 0 0-.833.833.834.834 0 0 0 1.666 0" clip-rule="evenodd"></path></svg></button></li></ul></nav></div></div> <div id="filters-wrapper" class="svelte-8yars5"><div id="filters-container" class="noscrollbar svelte-8yars5"></div> </div> <main id="search-page" class="svelte-1h8s4n6"> <div class="background-tint svelte-1h8s4n6"></div> <div class="column-layout noscrollbar svelte-bd1r44 has-sidebar"> <div class="cols svelte-bd1r44"><main class="main-column svelte-bd1r44"><div id="results" class="results section svelte-1h8s4n6"> <div id="llm-snippet" class="snippet noscript-hide expanded standalone svelte-n9nog2"><div class="snippet-content-wrapper svelte-985tyq"><div class="snippet-content svelte-985tyq has-min-height has-max-height expanded" style="--snippet-min-height: 204px; --snippet-max-height: 204px;"><div style="display: contents;"><h1 class="mb-xl desktop-heading-h3"><div id="chatllm-title" class="svelte-43tr6t" style="">Accessing Postgres from NodeJS</div></h1> <div class="chatllm-answer-list svelte-1ug6bbb"> <div style="display: contents;"><div id="chatllm-main-answer-content" class="chatllm-content"><div class="llm-output svelte-1mudur4 desktop-large-regular llm-output-complete"><p>Here’s a step-by-step guide on how to access a PostgreSQL server from a Node.js server:</p>
<h2>Prerequisites</h2>
<ol>
<li>Install the <code>pg</code> package using npm: <code>npm install pg</code></li>
<li>Make sure your PostgreSQL server is running and accessible</li>
<li>Replace the placeholders (<code>username</code>, <code>password</code>, <code>host</code>, <code>database</code>, and <code>port</code>) with your actual PostgreSQL credentials and settings</li>
</ol>
<h2>Connecting to PostgreSQL using a Pool</h2>
<p>Create a Node.js file (e.g., <code>index.js</code>) and add the following code:</p>
<pre data-lang="javascript" class="code"><code><span class="hljs-keyword">const</span> { <span class="hljs-title class_">Pool</span> } = <span class="hljs-built_in">require</span>(<span class="hljs-string">'pg'</span>);
<span class="hljs-comment">// Connection settings</span>
<span class="hljs-keyword">const</span> username = <span class="hljs-string">'your_username'</span>;
<span class="hljs-keyword">const</span> password = <span class="hljs-string">'your_password'</span>;
<span class="hljs-keyword">const</span> host = <span class="hljs-string">'your_host'</span>;
<span class="hljs-keyword">const</span> database = <span class="hljs-string">'your_database'</span>;
<span class="hljs-keyword">const</span> port = <span class="hljs-number">5432</span>;
<span class="hljs-comment">// Create a connection pool</span>
<span class="hljs-keyword">const</span> pool = <span class="hljs-keyword">new</span> <span class="hljs-title class_">Pool</span>({
<span class="hljs-attr">user</span>: username,
<span class="hljs-attr">password</span>: password,
<span class="hljs-attr">host</span>: host,
<span class="hljs-attr">port</span>: port,
<span class="hljs-attr">database</span>: database,
});
<span class="hljs-comment">// Use the pool to execute a query</span>
pool.<span class="hljs-title function_">query</span>(<span class="hljs-string">'SELECT NOW()'</span>, <span class="hljs-function">(<span class="hljs-params">err, res</span>) =></span> {
<span class="hljs-keyword">if</span> (err) {
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">error</span>(err);
} <span class="hljs-keyword">else</span> {
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(res.<span class="hljs-property">rows</span>[<span class="hljs-number">0</span>].<span class="hljs-property">now</span>);
}
});
<div class="copy-container svelte-15fs32e"> <button class="btn btn--tiny btn--icon btn--plain-faint"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" class="icon" viewBox="0 0 20 20"><path fill="currentColor" fill-rule="evenodd" d="M6.529 8.07c0-.851.69-1.542 1.541-1.542h8.334c.851 0 1.541.69 1.541 1.542v8.334c0 .85-.69 1.541-1.541 1.541H8.07c-.851 0-1.541-.69-1.541-1.541zm1.541-.125a.125.125 0 0 0-.125.125v8.334c0 .069.056.125.125.125h8.334a.125.125 0 0 0 .125-.125V8.07a.125.125 0 0 0-.125-.125zM1.792 3.333c0-.851.69-1.541 1.541-1.541h8.334c.851 0 1.541.69 1.541 1.541v1.09a.708.708 0 0 1-1.416 0v-1.09a.125.125 0 0 0-.125-.125H3.333a.125.125 0 0 0-.125.125v8.334c0 .069.056.125.125.125h1.09a.708.708 0 1 1 0 1.416h-1.09c-.851 0-1.541-.69-1.541-1.541z" clip-rule="evenodd"></path></svg></button></div></code></pre>
<h2>Connecting to PostgreSQL using a Client</h2>
<p>Alternatively, you can create a client instance instead of a pool:</p>
<pre data-lang="javascript" class="code"><code><span class="hljs-keyword">const</span> { <span class="hljs-title class_">Client</span> } = <span class="hljs-built_in">require</span>(<span class="hljs-string">'pg'</span>);
<span class="hljs-comment">// Connection settings (same as above)</span>
<span class="hljs-comment">// Create a client instance</span>
<span class="hljs-keyword">const</span> client = <span class="hljs-keyword">new</span> <span class="hljs-title class_">Client</span>({
<span class="hljs-attr">user</span>: username,
<span class="hljs-attr">password</span>: password,
<span class="hljs-attr">host</span>: host,
<span class="hljs-attr">port</span>: port,
<span class="hljs-attr">database</span>: database,
});
<span class="hljs-comment">// Use the client to execute a query</span>
client.<span class="hljs-title function_">connect</span>(<span class="hljs-function">(<span class="hljs-params">err</span>) =></span> {
<span class="hljs-keyword">if</span> (err) {
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">error</span>(err);
} <span class="hljs-keyword">else</span> {
client.<span class="hljs-title function_">query</span>(<span class="hljs-string">'SELECT NOW()'</span>, <span class="hljs-function">(<span class="hljs-params">err, res</span>) =></span> {
<span class="hljs-keyword">if</span> (err) {
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">error</span>(err);
} <span class="hljs-keyword">else</span> {
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(res.<span class="hljs-property">rows</span>[<span class="hljs-number">0</span>].<span class="hljs-property">now</span>);
}
client.<span class="hljs-title function_">end</span>();
});
}
});
<div class="copy-container svelte-15fs32e"> <button class="btn btn--tiny btn--icon btn--plain-faint"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" class="icon" viewBox="0 0 20 20"><path fill="currentColor" fill-rule="evenodd" d="M6.529 8.07c0-.851.69-1.542 1.541-1.542h8.334c.851 0 1.541.69 1.541 1.542v8.334c0 .85-.69 1.541-1.541 1.541H8.07c-.851 0-1.541-.69-1.541-1.541zm1.541-.125a.125.125 0 0 0-.125.125v8.334c0 .069.056.125.125.125h8.334a.125.125 0 0 0 .125-.125V8.07a.125.125 0 0 0-.125-.125zM1.792 3.333c0-.851.69-1.541 1.541-1.541h8.334c.851 0 1.541.69 1.541 1.541v1.09a.708.708 0 0 1-1.416 0v-1.09a.125.125 0 0 0-.125-.125H3.333a.125.125 0 0 0-.125.125v8.334c0 .069.056.125.125.125h1.09a.708.708 0 1 1 0 1.416h-1.09c-.851 0-1.541-.69-1.541-1.541z" clip-rule="evenodd"></path></svg></button></div></code></pre>
<h2>Error Handling</h2>
<p>In both examples, error handling is minimal. In a production environment, you should implement more robust error handling and logging mechanisms.</p>
<h2>Additional Tips</h2>
<ul>
<li>Make sure your PostgreSQL server allows remote connections (e.g., <code>listen_addresses = '*'</code> in <code>postgresql.conf</code>)</li>
<li>Use environment variables or a configuration file to store your PostgreSQL credentials instead of hardcoding them</li>
<li>Consider using a connection pool for production applications to improve performance and reduce the number of connections</li>
</ul>
<p>By following these examples, you should be able to access your PostgreSQL server from a Node.js server using the <code>pg</code> package.</p>
</div></div> <div class="wrapper-mobile"><div> <div class="image-grid-container svelte-1riuo2c"><div id="chatllm-images" class="image-grid-wrapper svelte-55e7tq animate clusterize"><div class="image-grid svelte-55e7tq row" style="--show-more-bg: url(https://imgs.search.brave.com/fwROMhbMZAas8LIgaOXHdj-5x9M0T-YUjrPs12fsDMw/rs:fit:500:0:0:0/g:ce/aHR0cHM6Ly9pbWdz/LnNlYXJjaC5icmF2/ZS5jb20vY2tqTW5T/eHBHX09fQnE5SmY0/UXZ5dDhsYjhvRGpL/djAzbDNMTFFRZVFx/VS9yczpmaXQ6NTYw/OjMyMDoxOjAvZzpj/ZS9hSFIwY0hNNkx5/OXpZMkZzL1pXZHlh/V1F1YVc4dmQzQXQv/WTI5dWRHVnVkQzkx/Y0d4di9ZV1J6TDNC/dmMzUm5jbVZ6L2NX/d3RZbVZ1WTJodFlY/SnIvTFhObkxYWnpM/WEprY3kweC9MVEV3/TWpSNE5UTXlMbXB3/L1p3.jpeg);"> <div class="image-grid-cluster svelte-55e7tq clusterize row"><div class="image-grid-item svelte-55e7tq image"><a class="fade-in svelte-55e7tq zoom" href="https://search.brave.com/images?q=show+me+how+to+access+a+postgres+server+from+a+nodejs+server&context=W3sic3JjIjoiaHR0cHM6Ly9pbWdzLnNlYXJjaC5icmF2ZS5jb20vZndST01oYk1aQWFzOExJZ2FPWEhkai01eDlNMFQtWVVqclBzMTJmc0RNdy9yczpmaXQ6NTAwOjA6MDowL2c6Y2UvYUhSMGNITTZMeTlwYldkei9Mbk5sWVhKamFDNWljbUYyL1pTNWpiMjB2WTJ0cVRXNVQvZUhCSFgwOWZRbkU1U21ZMC9VWFo1ZERoc1lqaHZSR3BML2RqQXpiRE5NVEZGUlpWRngvVlM5eWN6cG1hWFE2TlRZdy9Pak15TURveE9qQXZaenBqL1pTOWhTRkl3WTBoTk5reDUvT1hwWk1rWnpMMXBYWkhsaC9WMUYxWVZjNGRtUXpRWFF2L1dUSTVkV1JIVm5Wa1F6a3gvWTBkNGRpOVpWMUo2VEROQy9kbU16VW01amJWWjZMMk5YL2QzUlpiVloxV1RKb2RGbFkvU25JdlRGaE9ia3hZV25wTS9XRXByWTNrd2VDOU1WRVYzL1RXcFNORTVVVFhsTWJYQjMvTDFwMy5qcGVnIiwidGV4dCI6InBvc3RncmVzcWwgYmVuY2htYXJrIHNnIHZzIHJkcyIsInBhZ2VfdXJsIjoiaHR0cHM6Ly9zY2FsZWdyaWQuaW8vYmxvZy9ob3ctdG8tY29ubmVjdC1wb3N0Z3Jlc3FsLWRhdGFiYXNlLWluLW5vZGUtanMvIn1d&sig=4030cfa296a0841d91487df733a4904a8ad7b850094eb4ea439c9edd66580896&nonce=6d89709035b363b07cfe39ed96f75aa2&source=llmImg" data-sveltekit-reload=""><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/Zw.jpg" alt="postgresql benchmark sg vs rds" crossorigin="anonymous" loading="lazy" class="svelte-55e7tq"></a> </div> <div class="image-grid-item image svelte-55e7tq"><a href="https://search.brave.com/images?q=show+me+how+to+access+a+postgres+server+from+a+nodejs+server&context=W3sic3JjIjoiaHR0cHM6Ly9pbWdzLnNlYXJjaC5icmF2ZS5jb20vbkVnU0Z1TzZlVzUxSUh0WDY0MXZBblo5c3MzY3A3NW1YZVZ6MmZTN0E3MC9yczpmaXQ6NTAwOjA6MDowL2c6Y2UvYUhSMGNITTZMeTlwYldkei9Mbk5sWVhKamFDNWljbUYyL1pTNWpiMjB2ZURSRE5VZGYvY0hadVdWQnRXamRUVkhKSS9ia2RvVkRsWE4ySktkbnBFL1Izb3pURmQzWDBndGJUY3kvVVM5eWN6cG1hWFE2TlRZdy9Pak15TURveE9qQXZaenBqL1pTOWhTRkl3WTBoTk5reDUvT1hwWk1rWnpMMXBYWkhsaC9WMUYxWVZjNGRtUXpRWFF2L1dUSTVkV1JIVm5Wa1F6a3gvWTBkNGRpOVpWMUo2VERKSy9iR016VVhSalJ6bDZMMlJIL1pIbGFXRTU0WWtNeGJtUlgvYkdZdll6Sk9hR0pIVm01ai9iV3hyVEZSRmR5OU5hbEkwL1RsUmpNa3h0Y0hkYWR3LmpwZWciLCJ0ZXh0IjoiYmVzdCBwb3N0Z3Jlc3FsIGd1aV9zY2FsZWdyaWQiLCJwYWdlX3VybCI6Imh0dHBzOi8vc2NhbGVncmlkLmlvL2Jsb2cvaG93LXRvLWNvbm5lY3QtcG9zdGdyZXNxbC1kYXRhYmFzZS1pbi1ub2RlLWpzLyJ9XQ%3D%3D&sig=6ebe4d8a2c83c3750638920787f2ba2da12bdec38d9b2a24c654665cb5627b21&nonce=fbe62da1fdab4b41c5d60c67ac7192a5&source=llmImg" data-sveltekit-reload="" class="svelte-55e7tq zoom"><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/MjR4NTc2LmpwZw.jpg" alt="best postgresql gui_scalegrid" crossorigin="anonymous" loading="lazy" class="svelte-55e7tq"></a> </div><div class="image-grid-item image svelte-55e7tq"><a href="https://search.brave.com/images?q=show+me+how+to+access+a+postgres+server+from+a+nodejs+server&context=W3sic3JjIjoiaHR0cHM6Ly9pbWdzLnNlYXJjaC5icmF2ZS5jb20vTno2M0cyb1lSdVh3ejNSbEpxQWFpaUN3Slpob0FhemNZQ24tT2xmdTZPVS9yczpmaXQ6NTAwOjA6MDowL2c6Y2UvYUhSMGNITTZMeTlwYldkei9Mbk5sWVhKamFDNWljbUYyL1pTNWpiMjB2VmpCNGJHUlkvY0dzeFYxaEtlbmc0Y0d0TS9hMmxWVWpKbGNXTkJNVmhXL1FUTnJWazlFY1RkbVREQmkvUVM5eWN6cG1hWFE2TlRZdy9Pak15TURveE9qQXZaenBqL1pTOWhTRkl3WTBoTk5reDUvT1hwWk1rWnpMMXBYWkhsaC9WMUYxWVZjNGRtUXpRWFF2L1dUSTVkV1JIVm5Wa1F6a3gvWTBkNGRpOVpWMUo2VERKSy9jMkl5WTNSYWJWWm9MMlJJL1ZubGFVekZ3WWxka1ptRkgvT1RNdlRGaFNka3hYVG5aaS9iVFZzV1ROUmRDOWpSemw2L1pFZGtlVnBZVG5oaVF6RnIvTDFsWVVtaFpiVVo2V2xNeC9jR0pwTVhVdllqSlNiRXhYL2NIcE1iWEIzV2xkai5qcGVnIiwidGV4dCI6ImJsb2cgZmVhdHVyZSBpbWcgaG93IHRvIGNvbm5lY3QgcG9zdGdyZXNxbCBkYXRhYmFzZSBpbiBub2RlIGpzIiwicGFnZV91cmwiOiJodHRwczovL3NjYWxlZ3JpZC5pby9ibG9nL2hvdy10by1jb25uZWN0LXBvc3RncmVzcWwtZGF0YWJhc2UtaW4tbm9kZS1qcy8ifV0%3D&sig=ad2661fc3dcaf4b308c1a66e996506ae2b4185e0a1b5b79f3707e23351789c49&nonce=d92e3f294ec006744235fbff10582f23&source=llmImg" data-sveltekit-reload="" class="svelte-55e7tq zoom"><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/b2RlLWpzLmpwZWc.jpg" alt="blog feature img how to connect postgresql database in node js" crossorigin="anonymous" loading="lazy" class="svelte-55e7tq"></a> </div><div class="image-grid-item image svelte-55e7tq"><a href="https://search.brave.com/images?q=show+me+how+to+access+a+postgres+server+from+a+nodejs+server&context=W3sic3JjIjoiaHR0cHM6Ly9pbWdzLnNlYXJjaC5icmF2ZS5jb20vQWtCbVY0ckx4ZjFENGZMMjRObXUyeGJtbzdqWkNZSHZtMUFzR1BEbzdmYy9yczpmaXQ6NTAwOjA6MDowL2c6Y2UvYUhSMGNITTZMeTlwYldkei9Mbk5sWVhKamFDNWljbUYyL1pTNWpiMjB2ZEZSdWQwd3cvYlVvd1dHUmhTSEJmUjFseS9PVXBYYTJoQlZVVTFPV3Q0L05rNVlOMGgxUkVoQ1pVaHQvUVM5eWN6cG1hWFE2TlRZdy9Pak15TURveE9qQXZaenBqL1pTOWhTRkl3WTBoTk5reDUvT1hwWk1rWnpMMXBYWkhsaC9WMUYxWVZjNGRtUXpRWFF2L1dUSTVkV1JIVm5Wa1F6a3gvWTBkNGRpOVpWMUo2VERJMS9kbHBIVlhSaGJrMTBMMDE2L1FYZGxSRWwzVFVNMWNXTkgvWXcuanBlZyIsInRleHQiOiJOb2RlLmpzIHdpdGggUG9zdGdyZVNRTCIsInBhZ2VfdXJsIjoiaHR0cHM6Ly9zY2FsZWdyaWQuaW8vYmxvZy9ob3ctdG8tY29ubmVjdC1wb3N0Z3Jlc3FsLWRhdGFiYXNlLWluLW5vZGUtanMvIn1d&sig=6de5c26dbba74447be88a80387b2e294b5dea32fd95b0dee606e58820b619d21&nonce=2edbd9d11c6962c238527702b8c41900&source=llmImg" data-sveltekit-reload="" class="svelte-55e7tq zoom"><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/MzAweDIwMC5qcGc.jpg" alt="Node.js with PostgreSQL" crossorigin="anonymous" loading="lazy" class="svelte-55e7tq"></a> <a class="image-grid-button svelte-1xtzjqw" href="https://search.brave.com/images?q=show+me+how+to+access+a+postgres+server+from+a+nodejs+server&context=W3sic3JjIjoiaHR0cHM6Ly9pbWdzLnNlYXJjaC5icmF2ZS5jb20vZndST01oYk1aQWFzOExJZ2FPWEhkai01eDlNMFQtWVVqclBzMTJmc0RNdy9yczpmaXQ6NTAwOjA6MDowL2c6Y2UvYUhSMGNITTZMeTlwYldkei9Mbk5sWVhKamFDNWljbUYyL1pTNWpiMjB2WTJ0cVRXNVQvZUhCSFgwOWZRbkU1U21ZMC9VWFo1ZERoc1lqaHZSR3BML2RqQXpiRE5NVEZGUlpWRngvVlM5eWN6cG1hWFE2TlRZdy9Pak15TURveE9qQXZaenBqL1pTOWhTRkl3WTBoTk5reDUvT1hwWk1rWnpMMXBYWkhsaC9WMUYxWVZjNGRtUXpRWFF2L1dUSTVkV1JIVm5Wa1F6a3gvWTBkNGRpOVpWMUo2VEROQy9kbU16VW01amJWWjZMMk5YL2QzUlpiVloxV1RKb2RGbFkvU25JdlRGaE9ia3hZV25wTS9XRXByWTNrd2VDOU1WRVYzL1RXcFNORTVVVFhsTWJYQjMvTDFwMy5qcGVnIiwidGV4dCI6InBvc3RncmVzcWwgYmVuY2htYXJrIHNnIHZzIHJkcyIsInBhZ2VfdXJsIjoiaHR0cHM6Ly9zY2FsZWdyaWQuaW8vYmxvZy9ob3ctdG8tY29ubmVjdC1wb3N0Z3Jlc3FsLWRhdGFiYXNlLWluLW5vZGUtanMvIn1d&sig=4030cfa296a0841d91487df733a4904a8ad7b850094eb4ea439c9edd66580896&nonce=6d89709035b363b07cfe39ed96f75aa2&source=llmImg" data-sveltekit-reload=""><div class="icon-wrapper svelte-1xtzjqw"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M1.45 6a2.3 2.3 0 0 1 2.3-2.3h16.5a2.3 2.3 0 0 1 2.3 2.3v12a2.3 2.3 0 0 1-2.3 2.3H3.75a2.3 2.3 0 0 1-2.3-2.3zm1.6 10.081V18a.7.7 0 0 0 .7.7h16.5a.7.7 0 0 0 .7-.7v-1.919l-2.675-2.674a1.45 1.45 0 0 0-2.05 0l-.844.843.935.934a.8.8 0 1 1-1.132 1.132l-5.159-5.16a1.45 1.45 0 0 0-2.05 0zm11.2-2.962-3.093-3.094a3.05 3.05 0 0 0-4.314 0L3.05 13.82V6a.7.7 0 0 1 .7-.7h16.5a.7.7 0 0 1 .7.7v7.819l-1.543-1.544a3.05 3.05 0 0 0-4.314 0zM13.075 8.25a1.175 1.175 0 1 1 2.35 0 1.175 1.175 0 0 1-2.35 0" clip-rule="evenodd"></path></svg></div></a> </div></div></div></div></div></div></div> <div class="main-answer-context-wrapper svelte-9lmku9"><div class="main-answer-context noscrollbar svelte-9lmku9"><a class="context-result-card svelte-1fwr26v" href="https://node-postgres.com/features/connecting" target="_self" title="Connecting – node-postgres" style=""><div class="context-result-header t-secondary svelte-1fwr26v"><img alt="🌐" class="favicon svelte-w8qrqh size-3xs" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image.jpg" loading="lazy"> <div class="desktop-xsmall-semibold text-ellipsis">node-postgres.com</div></div> <div class="desktop-xsmall-regular t-tertiary text-ellipsis">Connecting – node-postgres</div></a><a class="context-result-card svelte-1fwr26v" href="https://stackoverflow.com/questions/9205496/how-to-make-connection-to-postgres-via-node-js" target="_self" title="postgresql - How to make connection to Postgres via Node.js - Stack Overflow" style=""><div class="context-result-header t-secondary svelte-1fwr26v"><img alt="🌐" class="favicon svelte-w8qrqh size-3xs" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image.png" loading="lazy"> <div class="desktop-xsmall-semibold text-ellipsis">stackoverflow.com</div></div> <div class="desktop-xsmall-regular t-tertiary text-ellipsis">postgresql - How to make connection to Postgres via Node.js - Stack Overflow</div></a><a class="context-result-card svelte-1fwr26v" href="https://scalegrid.io/blog/how-to-connect-postgresql-database-in-node-js/" target="_self" title="How To Connect PostgreSQL Database In Node.Js - ScaleGrid" style=""><div class="context-result-header t-secondary svelte-1fwr26v"><img alt="🌐" class="favicon svelte-w8qrqh size-3xs" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image(1).png" loading="lazy"> <div class="desktop-xsmall-semibold text-ellipsis">scalegrid.io</div></div> <div class="desktop-xsmall-regular t-tertiary text-ellipsis">How To Connect PostgreSQL Database In Node.Js - ScaleGrid</div></a></div> <button class="show-more svelte-9lmku9" style=""><div class="show-more-header svelte-9lmku9"><img alt="🌐" class="favicon svelte-w8qrqh size-3xs" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image(2).png" loading="lazy"></div> <div class="desktop-xsmall-regular t-tertiary text-ellipsis">+ 1 more</div></button></div> <div id="chatllm-actions" class="svelte-4jzkjx" style=""><div class="chatllm-actions-buttons svelte-4jzkjx"><div class="chatllm-thumbs svelte-4jzkjx"><div class="chatllm-thumbs-up"><div style="display: contents; --width: var(--spacing-6xl);"><button class="button svelte-6ewvxe type size--tiny type--plain-outlined-subtle theme--default rounded--l icon-only icon-start tooltip--bottom" role="button" rel="noopener" aria-label="Good response" data-sveltekit-reload=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M6.36 9.307a1.125 1.125 0 1 0 0 2.25 1.125 1.125 0 0 0 0-2.25" clip-rule="evenodd"></path><path fill-rule="evenodd" d="M13.17 1.215a2.035 2.035 0 0 1 2.942 1.823v4.158h2.775c1.38 0 2.39 1.3 2.049 2.637l-1.983 7.789A1.83 1.83 0 0 1 17.179 19H3.703a.705.705 0 0 1-.705-.705V7.901c0-.39.315-.705.705-.705h7.3l1.093-4.626a2.04 2.04 0 0 1 1.075-1.355m1.532 1.823a.625.625 0 0 0-1.234-.144l-1.222 5.17a.705.705 0 0 1-.686.542H9.843v8.984h7.336a.42.42 0 0 0 .407-.317l1.984-7.788a.705.705 0 0 0-.683-.879h-3.48a.705.705 0 0 1-.705-.705zM4.407 8.606h4.027v8.984H4.407z" clip-rule="evenodd"></path></svg> </button></div></div> <div class="chatllm-thumbs-down svelte-4jzkjx"><div style="display: contents; --width: var(--spacing-6xl);"><button class="button svelte-6ewvxe type size--tiny type--plain-outlined-subtle theme--default rounded--r icon-only icon-start tooltip--bottom" role="button" rel="noopener" aria-label="Bad response" data-sveltekit-reload=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M17.64 14.693a1.125 1.125 0 1 0 0-2.25 1.125 1.125 0 0 0 0 2.25" clip-rule="evenodd"></path><path fill-rule="evenodd" d="M10.83 22.785a2.035 2.035 0 0 1-2.942-1.823v-4.158H5.113c-1.38 0-2.39-1.3-2.049-2.637l1.983-7.788A1.83 1.83 0 0 1 6.821 5h13.477c.389 0 .704.316.704.705v10.394c0 .39-.315.705-.704.705h-7.3l-1.094 4.626a2.04 2.04 0 0 1-1.075 1.355m-1.532-1.823a.625.625 0 0 0 1.234.144l1.222-5.17a.705.705 0 0 1 .686-.542h1.717V6.41H6.82a.42.42 0 0 0-.407.316L4.43 14.515a.705.705 0 0 0 .683.879h3.48c.39 0 .705.315.705.705zm10.295-5.568h-4.027V6.41h4.027z" clip-rule="evenodd"></path></svg> </button></div></div></div> <button class="button svelte-6ewvxe type size--tiny type--plain-outlined-subtle theme--default icon-only icon-start tooltip--bottom" role="button" rel="noopener" aria-label="Share" data-sveltekit-reload=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M18 9a2.98 2.98 0 0 1-2.266-1.055L8.925 11.35c.046.209.075.424.075.647q0 .305-.06.593l6.798 3.46A2.98 2.98 0 0 1 18 15c1.654 0 3 1.346 3 3s-1.346 3-3 3a3.003 3.003 0 0 1-2.938-3.609l-6.789-3.456A2.98 2.98 0 0 1 6 15c-1.654 0-3-1.346-3-3.001s1.346-3 3-3a2.98 2.98 0 0 1 2.236 1.019l6.826-3.414A3.003 3.003 0 0 1 18 3c1.654 0 3 1.346 3 3s-1.346 3-3 3m0 10.5c.827 0 1.5-.674 1.5-1.5 0-.827-.673-1.5-1.5-1.5-.826 0-1.5.673-1.5 1.5 0 .826.674 1.5 1.5 1.5M6 10.499c-.827 0-1.5.673-1.5 1.5S5.173 13.5 6 13.5s1.5-.674 1.5-1.501-.673-1.5-1.5-1.5M18 4.5c-.826 0-1.5.674-1.5 1.5 0 .827.674 1.5 1.5 1.5.827 0 1.5-.673 1.5-1.5 0-.826-.673-1.5-1.5-1.5" clip-rule="evenodd"></path></svg> </button> <button class="button svelte-6ewvxe type size--tiny type--plain-outlined-subtle theme--default icon-only icon-start tooltip--bottom" role="button" rel="noopener" aria-label="Copy" data-sveltekit-reload=""><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" class="icon" viewBox="0 0 20 20"><path fill="currentColor" fill-rule="evenodd" d="M6.529 8.07c0-.851.69-1.542 1.541-1.542h8.334c.851 0 1.541.69 1.541 1.542v8.334c0 .85-.69 1.541-1.541 1.541H8.07c-.851 0-1.541-.69-1.541-1.541zm1.541-.125a.125.125 0 0 0-.125.125v8.334c0 .069.056.125.125.125h8.334a.125.125 0 0 0 .125-.125V8.07a.125.125 0 0 0-.125-.125zM1.792 3.333c0-.851.69-1.541 1.541-1.541h8.334c.851 0 1.541.69 1.541 1.541v1.09a.708.708 0 0 1-1.416 0v-1.09a.125.125 0 0 0-.125-.125H3.333a.125.125 0 0 0-.125.125v8.334c0 .069.056.125.125.125h1.09a.708.708 0 1 1 0 1.416h-1.09c-.851 0-1.541-.69-1.541-1.541z" clip-rule="evenodd"></path></svg> </button> </div> <cite class="chatllm-disclaimer desktop-xsmall-regular t-tertiary svelte-1wjwnpe">AI-generated answer. Please verify critical facts. </cite></div> </div></div></div> <div id="chatllm-conversation" class="svelte-1ug6bbb"><div class="conversation-input-field svelte-u6npgc type--default"><textarea rows="1" placeholder="Ask a follow-up question" class="desktop-large-regular styled-scrollbar svelte-u6npgc" autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" aria-label="Search" aria-autocomplete="both" aria-haspopup="false" style="height: 48px;"></textarea> <div class="conversation-input-actions svelte-u6npgc"><button class="conversation-input-send svelte-u6npgc" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M2.72 2.952c.198-.2.49-.277.761-.198a58.1 58.1 0 0 1 17.7 8.623.767.767 0 0 1 0 1.246 58.1 58.1 0 0 1-17.7 8.623.767.767 0 0 1-.947-.962L5.083 12l-2.55-8.284a.77.77 0 0 1 .187-.764m3.732 9.815-2.027 6.589A56.5 56.5 0 0 0 19.4 12 56.5 56.5 0 0 0 4.425 4.644l2.027 6.59h6.625a.767.767 0 0 1 0 1.533z" clip-rule="evenodd"></path></svg></button></div></div></div></div> </div> </div> <div class="snippet svelte-n9nog2" data-pos="0" data-type="web" data-keynav="true"><a href="https://stackoverflow.com/questions/9205496/how-to-make-connection-to-postgres-via-node-js" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image.png" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">Stack Overflow</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">stackoverflow.com</span> <span class="url-path svelte-17izklh">› questions › 9205496 › how-to-make-connection-to-postgres-via-node-js</span> </cite></div></div> <div class="title svelte-yo6adg" title="postgresql - How to make connection to Postgres via Node.js - Stack ...">postgresql - How to make connection to Postgres via Node.js - Stack ...</div></div> </div> </a> <div class="inline-qa svelte-1kuhdy inline-qa--top-answer overflowing"><div class="tabs svelte-1kuhdy"><button class="tab desktop-small-regular svelte-1kuhdy tab--active" role="tab" aria-selected="true">Top answer </button><button class="tab desktop-small-regular svelte-1kuhdy" role="tab" aria-selected="false">All answers (7) </button></div> <div class="inline-qa-answer desktop-default-regular t-secondary noscrollbar svelte-1kuhdy"><p>Here is an example I used to connect node.js to my Postgres database.</p>
<p>The interface in node.js that I used can be found here https://github.com/brianc/node-postgres</p>
<pre><code><div class="copy-displacement" style="float: right; height: 40px; position: relative; right: calc(-1 * var(--spacing-xl)); top: calc(-1 * var(--spacing-xl)); width: 40px;"></div><span class="token keyword">var</span> pg <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">'pg'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">var</span> conString <span class="token operator">=</span> <span class="token string">"postgres://YourUserName:YourPassword@localhost:5432/YourDatabase"</span><span class="token punctuation">;</span>
<span class="token keyword">var</span> client <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">pg<span class="token punctuation">.</span>Client</span><span class="token punctuation">(</span>conString<span class="token punctuation">)</span><span class="token punctuation">;</span>
client<span class="token punctuation">.</span><span class="token function">connect</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">//queries are queued and executed one after another once the connection becomes available</span>
<span class="token keyword">var</span> x <span class="token operator">=</span> <span class="token number">1000</span><span class="token punctuation">;</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span>x <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
client<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token string">"INSERT INTO junk(name, a_number) values('Ted',12)"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
client<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token string">"INSERT INTO junk(name, a_number) values($1, $2)"</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token string">'John'</span><span class="token punctuation">,</span> x<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
x <span class="token operator">=</span> x <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">var</span> query <span class="token operator">=</span> client<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token string">"SELECT * FROM junk"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">//fired after last row is emitted</span>
query<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'row'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">row</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>row<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
query<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'end'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
client<span class="token punctuation">.</span><span class="token function">end</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">//queries can be executed either via text/parameter values passed as individual arguments</span>
<span class="token comment">//or by passing an options object containing text, (optional) parameter values, and (optional) query name</span>
client<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
<span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'insert beatle'</span><span class="token punctuation">,</span>
<span class="token literal-property property">text</span><span class="token operator">:</span> <span class="token string">"INSERT INTO beatles(name, height, birthday) values($1, $2, $3)"</span><span class="token punctuation">,</span>
<span class="token literal-property property">values</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">'George'</span><span class="token punctuation">,</span> <span class="token number">70</span><span class="token punctuation">,</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token number">1946</span><span class="token punctuation">,</span> <span class="token number">02</span><span class="token punctuation">,</span> <span class="token number">14</span><span class="token punctuation">)</span><span class="token punctuation">]</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">//subsequent queries with the same name will be executed without re-parsing the query plan by postgres</span>
client<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
<span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'insert beatle'</span><span class="token punctuation">,</span>
<span class="token literal-property property">values</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">'Paul'</span><span class="token punctuation">,</span> <span class="token number">63</span><span class="token punctuation">,</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token number">1945</span><span class="token punctuation">,</span> <span class="token number">04</span><span class="token punctuation">,</span> <span class="token number">03</span><span class="token punctuation">)</span><span class="token punctuation">]</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">var</span> query <span class="token operator">=</span> client<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token string">"SELECT * FROM beatles WHERE name = $1"</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token string">'john'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">//can stream row results back 1 at a time</span>
query<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'row'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">row</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>row<span class="token punctuation">)</span><span class="token punctuation">;</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"Beatle name: %s"</span><span class="token punctuation">,</span> row<span class="token punctuation">.</span>name<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//Beatle name: John</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"Beatle birth year: %d"</span><span class="token punctuation">,</span> row<span class="token punctuation">.</span>birthday<span class="token punctuation">.</span><span class="token function">getYear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//dates are returned as javascript dates</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"Beatle height: %d' %d\""</span><span class="token punctuation">,</span> Math<span class="token punctuation">.</span><span class="token function">floor</span><span class="token punctuation">(</span>row<span class="token punctuation">.</span>height <span class="token operator">/</span> <span class="token number">12</span><span class="token punctuation">)</span><span class="token punctuation">,</span> row<span class="token punctuation">.</span>height <span class="token operator">%</span> <span class="token number">12</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//integers are returned as javascript ints</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">//fired after last row is emitted</span>
query<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'end'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
client<span class="token punctuation">.</span><span class="token function">end</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<div class="copy-container svelte-15fs32e"> <button class="btn btn--tiny btn--icon btn--plain-faint"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" class="icon" viewBox="0 0 20 20"><path fill="currentColor" fill-rule="evenodd" d="M6.529 8.07c0-.851.69-1.542 1.541-1.542h8.334c.851 0 1.541.69 1.541 1.542v8.334c0 .85-.69 1.541-1.541 1.541H8.07c-.851 0-1.541-.69-1.541-1.541zm1.541-.125a.125.125 0 0 0-.125.125v8.334c0 .069.056.125.125.125h8.334a.125.125 0 0 0 .125-.125V8.07a.125.125 0 0 0-.125-.125zM1.792 3.333c0-.851.69-1.541 1.541-1.541h8.334c.851 0 1.541.69 1.541 1.541v1.09a.708.708 0 0 1-1.416 0v-1.09a.125.125 0 0 0-.125-.125H3.333a.125.125 0 0 0-.125.125v8.334c0 .069.056.125.125.125h1.09a.708.708 0 1 1 0 1.416h-1.09c-.851 0-1.541-.69-1.541-1.541z" clip-rule="evenodd"></path></svg></button></div></code></pre>
<p>UPDATE:- THE <code>query<span class="token punctuation">.</span>on</code> function is now deprecated and hence the above code will not work as intended. As a solution for this look at:- query.on is not a function</p> <cite class="svelte-1kuhdy">Answer from Kuberchaun on stackoverflow.com</cite></div> <div class="bottom-fade svelte-h9rkzz"></div> <div class="action-container svelte-1kuhdy"><button class="button svelte-6ewvxe type size--default size--tiny type--outlined-subtle type--footer-subtle theme--default icon-end tooltip--bottom" role="button" rel="noopener" data-sveltekit-reload=""> <span class="svelte-6ewvxe">Show more</span> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12.566 15.316a.8.8 0 0 1-1.132 0l-5.5-5.5a.8.8 0 1 1 1.132-1.132L12 13.62l4.934-4.935a.8.8 0 1 1 1.132 1.132z" clip-rule="evenodd"></path></svg></button></div></div> </div><div class="snippet svelte-n9nog2" data-pos="1" data-type="web" data-keynav="true"><a href="https://node-postgres.com/features/connecting" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image.jpg" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">Node-postgres</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">node-postgres.com</span> <span class="url-path svelte-17izklh">› features › connecting</span> </cite></div></div> <div class="title svelte-yo6adg" title="Connecting – node-postgres">Connecting – node-postgres</div></div> </div> </a> <div class="snippet-content t-secondary svelte-9wfmiw"> <div class="snippet-description desktop-default-regular"> node-<strong>postgres</strong> is a collection of node.js modules for interfacing with your PostgreSQL database.</div></div> </div><div class="snippet svelte-n9nog2" data-pos="2" data-type="web" data-keynav="true"><a href="https://www.ovhcloud.com/en-ca/community/tutorials/how-to-acces-pg-nodejs-app/" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image(3).png" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">OVHcloud</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">ovhcloud.com</span> <span class="url-path svelte-17izklh"> › tutorials › how to access a postgresql from node.js application</span> </cite></div></div> <div class="title svelte-yo6adg" title="How to access a PostgreSQL from Node.js application? | OVHcloud Canada">How to access a PostgreSQL from Node.js application? | OVHcloud Canada</div></div> </div> </a> <div class="snippet-content t-secondary svelte-9wfmiw"> <div class="snippet-description desktop-default-regular"> At the time of creating this tutorial, the latest LTS version of node-postgres library available was 8.7.3. <strong>Create a folder named nodejs-pg-example and run the NPM init command</strong>:</div></div> </div><div class="snippet svelte-n9nog2" data-pos="3" data-type="web" data-keynav="true"><a href="https://scalegrid.io/blog/how-to-connect-postgresql-database-in-node-js/" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image(1).png" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">ScaleGrid</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">scalegrid.io</span> <span class="url-path svelte-17izklh">› blog › how-to-connect-postgresql-database-in-node-js</span> </cite></div></div> <div class="title svelte-yo6adg" title="How To Connect PostgreSQL Database In Node.Js - ScaleGrid">How To Connect PostgreSQL Database In Node.Js - ScaleGrid</div></div> </div> </a> <div class="snippet-content t-secondary svelte-9wfmiw"> <div class="snippet-description desktop-default-regular">December 17, 2023 - Unlock the secrets to supercharging your apps: Read our ultimate guide for integrating PostgreSQL database in Node.js!</div></div> </div><div class="snippet svelte-n9nog2" data-pos="4" data-type="web" data-keynav="true"><a href="https://stackoverflow.com/questions/59623716/how-can-i-see-all-the-databases-of-connected-server-in-nodejs-postgres-mysql" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image.png" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">Stack Overflow</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">stackoverflow.com</span> <span class="url-path svelte-17izklh">› questions › 59623716 › how-can-i-see-all-the-databases-of-connected-server-in-nodejs-postgres-mysql</span> </cite></div></div> <div class="title svelte-yo6adg" title="postgresql - How can I see all the databases of connected server ...">postgresql - How can I see all the databases of connected server ...</div></div> </div> </a> <div class="inline-qa svelte-1kuhdy inline-qa--top-answer overflowing"><div class="tabs svelte-1kuhdy"><button class="tab desktop-small-regular svelte-1kuhdy tab--active" role="tab" aria-selected="true">Top answer </button><button class="tab desktop-small-regular svelte-1kuhdy" role="tab" aria-selected="false">All answers (1) </button></div> <div class="inline-qa-answer desktop-default-regular t-secondary noscrollbar svelte-1kuhdy"><p>Please see below for mysql database:</p>
<p></p>
<pre class="snippet-code-html prettyprint-override language-html" tabindex="0"><code class="language-html"><div class="copy-displacement" style="float: right; height: 40px; position: relative; right: calc(-1 * var(--spacing-xl)); top: calc(-1 * var(--spacing-xl)); width: 40px;"></div><span class="token keyword">var</span> mysql <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">'mysql'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">var</span> con <span class="token operator">=</span> mysql<span class="token punctuation">.</span><span class="token function">createConnection</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
<span class="token literal-property property">host</span><span class="token operator">:</span> <span class="token string">"localhost"</span><span class="token punctuation">,</span>
<span class="token literal-property property">user</span><span class="token operator">:</span> <span class="token string">"yourusername"</span><span class="token punctuation">,</span>
<span class="token literal-property property">password</span><span class="token operator">:</span> <span class="token string">"yourpassword"</span><span class="token punctuation">,</span>
<span class="token literal-property property">database</span><span class="token operator">:</span> <span class="token string">"mydb"</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
con<span class="token punctuation">.</span><span class="token function">connect</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">err</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>err<span class="token punctuation">)</span> <span class="token keyword">throw</span> err<span class="token punctuation">;</span>
con<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token string">"show databases"</span><span class="token punctuation">,</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token parameter">err<span class="token punctuation">,</span> result<span class="token punctuation">,</span> fields</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>err<span class="token punctuation">)</span> <span class="token keyword">throw</span> err<span class="token punctuation">;</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span><div class="copy-container svelte-15fs32e"> <button class="btn btn--tiny btn--icon btn--plain-faint"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" class="icon" viewBox="0 0 20 20"><path fill="currentColor" fill-rule="evenodd" d="M6.529 8.07c0-.851.69-1.542 1.541-1.542h8.334c.851 0 1.541.69 1.541 1.542v8.334c0 .85-.69 1.541-1.541 1.541H8.07c-.851 0-1.541-.69-1.541-1.541zm1.541-.125a.125.125 0 0 0-.125.125v8.334c0 .069.056.125.125.125h8.334a.125.125 0 0 0 .125-.125V8.07a.125.125 0 0 0-.125-.125zM1.792 3.333c0-.851.69-1.541 1.541-1.541h8.334c.851 0 1.541.69 1.541 1.541v1.09a.708.708 0 0 1-1.416 0v-1.09a.125.125 0 0 0-.125-.125H3.333a.125.125 0 0 0-.125.125v8.334c0 .069.056.125.125.125h1.09a.708.708 0 1 1 0 1.416h-1.09c-.851 0-1.541-.69-1.541-1.541z" clip-rule="evenodd"></path></svg></button></div></code></pre>
<cite class="svelte-1kuhdy">Answer from Ankur Munjaal on stackoverflow.com</cite></div> <div class="bottom-fade svelte-h9rkzz"></div> <div class="action-container svelte-1kuhdy"><button class="button svelte-6ewvxe type size--default size--tiny type--outlined-subtle type--footer-subtle theme--default icon-end tooltip--bottom" role="button" rel="noopener" data-sveltekit-reload=""> <span class="svelte-6ewvxe">Show more</span> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12.566 15.316a.8.8 0 0 1-1.132 0l-5.5-5.5a.8.8 0 1 1 1.132-1.132L12 13.62l4.934-4.935a.8.8 0 1 1 1.132 1.132z" clip-rule="evenodd"></path></svg></button></div></div> </div><div class="snippet svelte-n9nog2" data-pos="5" data-type="web" data-keynav="true"><a href="https://www.thisdot.co/blog/connecting-to-postgresql-with-node-js" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image(2).png" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">This Dot Labs</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">thisdot.co</span> <span class="url-path svelte-17izklh">› blog › connecting-to-postgresql-with-node-js</span> </cite></div></div> </div> </div> <div class="thumbnail-wrapper svelte-yo6adg"></div> <div class="title mt-s svelte-yo6adg" title="Connecting to PostgreSQL with Node.js - This Dot Labs">Connecting to PostgreSQL with Node.js - This Dot Labs</div></a> <div class="snippet-content t-secondary svelte-9wfmiw"> <div class="snippet-description desktop-default-regular">February 14, 2023 - If you plan on writing more advanced applications in Node.js, you may find the need to store information persistently.</div></div> </div><div class="snippet svelte-n9nog2" data-pos="6" data-type="web" data-keynav="true"><a href="https://northflank.com/guides/connecting-to-a-postgresql-database-using-node-js" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image(4).png" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">Northflank</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">northflank.com</span> <span class="url-path svelte-17izklh">› guides › connecting-to-a-postgresql-database-using-node-js</span> </cite></div></div> </div> </div> <div class="thumbnail-wrapper svelte-yo6adg"><div class="thumbnail svelte-fkxvdp general size--big zoom loaded" target="_self" tabindex="-1"><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/Group_321_160b91d960.png" loading="lazy" alt=" " width="145" height="90" class="svelte-fkxvdp"> </div></div> <div class="title mt-s svelte-yo6adg" title="Connecting to a PostgreSQL database using Node.js — Northflank">Connecting to a PostgreSQL database using Node.js — Northflank</div></a> <div class="snippet-content t-secondary svelte-9wfmiw"> <div class="snippet-description desktop-default-regular"> Now you're ready to run the script with <strong>node ./connect.js</strong>. This should print a message to show that the connection to Postgres was successful.</div></div> </div><div class="snippet svelte-n9nog2" data-pos="7" data-type="web" data-keynav="true"><a href="https://dev.to/aguowisdom/connecting-to-a-postgresql-database-with-nodejs-a-step-by-step-guide-n6j" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image(5).jpg" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">DEV Community</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">dev.to</span> <span class="url-path svelte-17izklh">› aguowisdom › connecting-to-a-postgresql-database-with-nodejs-a-step-by-step-guide-n6j</span> </cite></div></div> </div> </div> <div class="thumbnail-wrapper svelte-yo6adg"><div class="thumbnail svelte-fkxvdp general size--big zoom loaded" target="_self" tabindex="-1"><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/qanxmdyjjnsjyel83jes.png" loading="lazy" alt=" " width="145" height="90" class="svelte-fkxvdp"> </div></div> <div class="title mt-s svelte-yo6adg" title="CONNECTING TO A POSTGRESQL DATABASE WITH NODE.JS: A STEP-BY-STEP ...">CONNECTING TO A POSTGRESQL DATABASE WITH NODE.JS: A STEP-BY-STEP ...</div></a> <div class="snippet-content t-secondary svelte-9wfmiw"> <div class="snippet-description desktop-default-regular">September 3, 2023 - Introduction Node.js is a popular open-source JavaScript runtime that allows developers to...</div></div> </div><div class="snippet svelte-n9nog2" data-pos="8" data-type="web" data-keynav="true"><a href="https://www.makeuseof.com/node-postgresql-connect-how/" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image(6).png" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">MUO</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">makeuseof.com</span> <span class="url-path svelte-17izklh"> › home › programming › how to connect to a postgresql database using node.js</span> </cite></div></div> </div> </div> <div class="thumbnail-wrapper svelte-yo6adg"><div class="thumbnail svelte-fkxvdp general size--big zoom loaded" target="_self" tabindex="-1"><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/pexels-pixabay-220237.jpg" loading="lazy" alt=" " width="145" height="90" class="svelte-fkxvdp"> </div></div> <div class="title mt-s svelte-yo6adg" title="How to Connect to a PostgreSQL Database Using Node.js">How to Connect to a PostgreSQL Database Using Node.js</div></a> <div class="snippet-content t-secondary svelte-9wfmiw"> <div class="snippet-description desktop-default-regular">June 21, 2022 - <strong>PGUSER - PostgreSQL username to connect as.</strong> PGHOST - The name of the server host to connect to.</div></div> </div><div class="snippet svelte-n9nog2" data-pos="9" data-type="web" data-keynav="true"><a href="https://stackoverflow.com/questions/53234643/how-do-you-connect-to-the-postgres-from-a-node-server-while-both-is-started-insi" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image.png" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">Stack Overflow</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">stackoverflow.com</span> <span class="url-path svelte-17izklh">› questions › 53234643 › how-do-you-connect-to-the-postgres-from-a-node-server-while-both-is-started-insi</span> </cite></div></div> <div class="title svelte-yo6adg" title="node.js - How do you connect to the postgres from a node server ...">node.js - How do you connect to the postgres from a node server ...</div></div> </div> </a> <div class="snippet-content t-secondary svelte-9wfmiw"> <div class="snippet-description desktop-default-regular"> I'm currently having some some problems with docker and connecting a node project with <strong>postgres</strong> when running inside it. I use docker toolbox by the way since I don't have windows pro. my docker-c...</div></div> </div> <div id="search-elsewhere" class="snippet standalone no-border no-padding svelte-n9nog2"><div class="search-elsewhere-wrapper svelte-1jhoinl"><header class="desktop-heading-h4 svelte-18rzjgd secondary"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M10.498 2a8.498 8.498 0 1 0 5.843 14.67l4.292 4.291a.8.8 0 1 0 1.131-1.13l-4.367-4.368A8.498 8.498 0 0 0 10.499 2M3.6 10.498a6.898 6.898 0 1 1 13.797 0 6.898 6.898 0 0 1-13.797 0" clip-rule="evenodd"></path></svg> Find elsewhere</header> <div id="search-elsewhere-providers" class="flex-hcenter svelte-1jhoinl"><a id="search-external-google" class="t-secondary svelte-1ejc2r0 desktop-default-regular primary" href="https://search.brave.com/search?q=show%20me%20how%20to%20access%20a%20postgres%20server%20from%20a%20nodejs%20server%20!g">Google</a> <a id="search-external-bing" class="t-secondary svelte-1ejc2r0 desktop-default-regular primary" href="https://search.brave.com/search?q=show%20me%20how%20to%20access%20a%20postgres%20server%20from%20a%20nodejs%20server%20!b" target="_self" data-sveltekit-reload="">Bing</a> <a id="search-external-mojeek" class="t-secondary svelte-1ejc2r0 desktop-default-regular primary" href="https://search.brave.com/search?q=show%20me%20how%20to%20access%20a%20postgres%20server%20from%20a%20nodejs%20server%20!mojeek" target="_self" data-sveltekit-reload="">Mojeek</a></div></div> </div><div class="snippet svelte-n9nog2" data-pos="11" data-type="web" data-keynav="true"><a href="https://stackoverflow.com/questions/75220606/connect-to-postgres-with-nodejs" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image.png" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">Stack Overflow</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">stackoverflow.com</span> <span class="url-path svelte-17izklh">› questions › 75220606 › connect-to-postgres-with-nodejs</span> </cite></div></div> <div class="title svelte-yo6adg" title="Connect to postgres with nodeJS">Connect to postgres with nodeJS</div></div> </div> </a> <div class="snippet-content t-secondary svelte-9wfmiw"> <div class="snippet-description desktop-default-regular"> Im struggling to create API call to my database from node.js. i have <strong>a</strong> <strong>postgres</strong> instance on Centos with multiple databases and table. im trying to get table name "test_reslts" from databa...</div></div> </div><div class="snippet svelte-n9nog2" data-pos="12" data-type="web" data-keynav="true"><a href="https://node-postgres.com/" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image.jpg" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">Node-postgres</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">node-postgres.com</span> <span class="url-path svelte-17izklh"></span> </cite></div></div> <div class="title svelte-yo6adg" title="Welcome – node-postgres">Welcome – node-postgres</div></div> </div> </a> <div class="snippet-content t-secondary svelte-9wfmiw"> <div class="snippet-description desktop-default-regular"> node-<strong>postgres</strong> is a collection of node.js modules for interfacing with your PostgreSQL database.</div></div> </div><div class="snippet svelte-n9nog2" data-pos="13" data-type="web" data-keynav="true"><a href="https://medium.com/@fanbubu0/connecting-to-postgresql-database-in-node-js-a-step-by-step-guide-d364a8c7a51c" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image(7).png" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">Medium</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">medium.com</span> <span class="url-path svelte-17izklh">› @fanbubu0 › connecting-to-postgresql-database-in-node-js-a-step-by-step-guide-d364a8c7a51c</span> </cite></div></div> </div> </div> <div class="thumbnail-wrapper svelte-yo6adg"><div class="thumbnail svelte-fkxvdp general size--big zoom" target="_self" tabindex="-1"><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/bd978bb536350a710e8efb012513429cabdc4c28700604261aeda246d0f980b7.png" loading="lazy" alt=" " width="145" height="90" class="svelte-fkxvdp"> </div></div> <div class="title mt-s svelte-yo6adg" title="“Connecting to PostgreSQL Database in Node.js: A Step-by-Step ...">“Connecting to PostgreSQL Database in Node.js: A Step-by-Step ...</div></a> <div class="snippet-content t-secondary svelte-9wfmiw"> <div class="snippet-description desktop-default-regular">January 16, 2024 - In this article, we’ll explore how to establish a connection to a PostgreSQL database using Node.js. The provided code snippet showcases the setup using the ‘pg’ library. Let’s dive into the…</div></div> </div><div class="snippet svelte-n9nog2" data-pos="14" data-type="web" data-keynav="true"><a href="https://medium.com/swlh/connect-postgresql-with-node-js-4ded3e81e31a" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image(7).png" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">Medium</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">medium.com</span> <span class="url-path svelte-17izklh">› swlh › connect-postgresql-with-node-js-4ded3e81e31a</span> </cite></div></div> <div class="title svelte-yo6adg" title="Connect PostgreSQL with Node.js. Here we are using the most popular…">Connect PostgreSQL with Node.js. Here we are using the most popular…</div></div> </div> </a> <div class="snippet-content t-secondary svelte-9wfmiw"> <div class="snippet-description desktop-default-regular">December 14, 2021 - Here we are using the most popular Node.js module ‘node-<strong>postgres</strong>’ for connecting the PostgreSQL database with Node.js.</div></div> </div><div class="snippet svelte-n9nog2" data-pos="15" data-type="web" data-keynav="true"><a href="https://dev.to/miku86/nodejs-postgresql-how-to-connect-our-database-to-our-simple-express-server-with-an-orm-gcm" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image(5).jpg" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">DEV Community</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">dev.to</span> <span class="url-path svelte-17izklh">› miku86 › nodejs-postgresql-how-to-connect-our-database-to-our-simple-express-server-with-an-orm-gcm</span> </cite></div></div> </div> </div> <div class="thumbnail-wrapper svelte-yo6adg"><div class="thumbnail svelte-fkxvdp general size--big zoom" target="_self" tabindex="-1"><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/3otvb2z646ytpt1hl2rv.jpg" loading="lazy" alt=" " width="145" height="90" class="svelte-fkxvdp"> </div></div> <div class="title mt-s svelte-yo6adg" title="NodeJS & PostgreSQL: How To Connect Our Database To Our Simple ...">NodeJS & PostgreSQL: How To Connect Our Database To Our Simple ...</div></a> <div class="snippet-content t-secondary svelte-9wfmiw"> <div class="snippet-description desktop-default-regular">September 13, 2019 - <strong>NodeJS</strong> & PostgreSQL: How To Connect Our Database To Our Simple Express <strong>Server</strong> (with an ORM). Tagged with beginners, tutorial, <strong>postgres</strong>, javascript.</div></div> </div><div class="snippet svelte-n9nog2" data-pos="16" data-type="web" data-keynav="true"><a href="https://help.scalegrid.io/docs/postgresql-connecting-to-nodejs-driver" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image(8).png" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">ScaleGrid Console</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">help.scalegrid.io</span> <span class="url-path svelte-17izklh">› docs › postgresql-connecting-to-nodejs-driver</span> </cite></div></div> </div> </div> <div class="thumbnail-wrapper svelte-yo6adg"><div class="thumbnail svelte-fkxvdp general size--big zoom" target="_self" tabindex="-1"><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/709b58f-small-scalegrid_220x40_positive.png" loading="lazy" alt=" " width="145" height="90" class="svelte-fkxvdp"> </div></div> <div class="title mt-s svelte-yo6adg" title="Node.js PostgreSQL Connection">Node.js PostgreSQL Connection</div></a> <div class="snippet-content t-secondary svelte-9wfmiw"> <div class="snippet-description desktop-default-regular"> Easily connect your PostgreSQL hosting deployments at ScaleGrid to the Node.js driver to optimize your PostgreSQL management in the cloud. How to Connect PostgreSQL to the Node.js Driver Install the PostgreSQL extension for Node.js npm install pg Get the following PostgreSQL deployment information ...</div></div> </div><div class="snippet svelte-n9nog2" data-pos="17" data-type="web" data-keynav="true"><a href="https://stackabuse.com/using-postgresql-with-nodejs-and-node-postgres/" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image(9).png" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">Stack Abuse</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">stackabuse.com</span> <span class="url-path svelte-17izklh">› using-postgresql-with-nodejs-and-node-postgres</span> </cite></div></div> </div> </div> <div class="thumbnail-wrapper svelte-yo6adg"><div class="thumbnail svelte-fkxvdp general size--big zoom" target="_self" tabindex="-1"><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/20bcfecb5ce3c3a3acebc5838f9b0d45.png" loading="lazy" alt=" " width="145" height="90" class="svelte-fkxvdp"> </div></div> <div class="title mt-s svelte-yo6adg" title="Using PostgreSQL with Node.js and node-postgres">Using PostgreSQL with Node.js and node-postgres</div></a> <div class="snippet-content t-secondary svelte-9wfmiw"> <div class="snippet-description desktop-default-regular">March 6, 2020 - PostgreSQL is a really popular, free, open-source relational database. The node-<strong>postgres</strong> module is a widely-employed module that bridges Node with it. In this article, we'll be developing simple CRUD functionality for a PostgreSQL database.</div></div> </div><div class="snippet svelte-n9nog2" data-pos="18" data-type="web" data-keynav="true"><a href="https://hostman.com/tutorials/access-postgresql-from-node-js/" target="_self" class="svelte-yo6adg l1 heading-serpresult"><div class="h svelte-yo6adg"><div class="url svelte-yo6adg"> <div class="site-wrapper svelte-56t110"><div class="favicon-wrapper svelte-56t110"><img alt="🌐" class="favicon svelte-w8qrqh size-s" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image(10).png" loading="lazy"></div> <div class="site svelte-56t110"><div class="sitename-container desktop-default-regular t-secondary svelte-56t110"><div class="sitename svelte-56t110">Hostman</div> </div> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">hostman.com</span> <span class="url-path svelte-17izklh"> › tutorials › access to a postgresql database from node.js application</span> </cite></div></div> </div> </div> <div class="thumbnail-wrapper svelte-yo6adg"><div class="thumbnail svelte-fkxvdp general size--big zoom" target="_self" tabindex="-1"><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/og.png" loading="lazy" alt=" " width="145" height="90" class="svelte-fkxvdp"> </div></div> <div class="title mt-s svelte-yo6adg" title="Access to a PostgreSQL Database from Node.js Application">Access to a PostgreSQL Database from Node.js Application</div></a> <div class="snippet-content t-secondary svelte-9wfmiw"> <div class="snippet-description desktop-default-regular"> This comprehensive guide covers everything from setting up PostgreSQL and installing the necessary Node.js modules to creating a Node.js project.</div></div> </div> <div id="pagination-snippet" class="snippet standalone no-border no-padding svelte-n9nog2"><div id="pagination" class="svelte-sd3rvk"> <a class="btn svelte-sd3rvk" href="https://search.brave.com/search?q=show%20me%20how%20to%20access%20a%20postgres%20server%20from%20a%20nodejs%20server&offset=1&spellcheck=0" data-sveltekit-reload="">Next <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M16.299 12.833H4.833a.833.833 0 0 1 0-1.666H16.3l-5.656-5.221a.833.833 0 1 1 1.13-1.225l6.78 6.258a1.39 1.39 0 0 1 0 2.042l-6.78 6.258a.833.833 0 1 1-1.13-1.225z" clip-rule="evenodd"></path></svg></a></div> </div></div> <div id="floating-infobox-anchor"></div></main> <aside class="sidebar svelte-bd1r44"><div id="llm-side-snippet" class="snippet noscript-hide standalone svelte-n9nog2"><div class="layout svelte-ogngpg"> <div class="image-grid-container svelte-1riuo2c"><div id="chatllm-images" class="image-grid-wrapper svelte-55e7tq animate clusterize"><div class="image-grid svelte-55e7tq columns-2" style="--show-more-bg: url(https://imgs.search.brave.com/fwROMhbMZAas8LIgaOXHdj-5x9M0T-YUjrPs12fsDMw/rs:fit:500:0:0:0/g:ce/aHR0cHM6Ly9pbWdz/LnNlYXJjaC5icmF2/ZS5jb20vY2tqTW5T/eHBHX09fQnE5SmY0/UXZ5dDhsYjhvRGpL/djAzbDNMTFFRZVFx/VS9yczpmaXQ6NTYw/OjMyMDoxOjAvZzpj/ZS9hSFIwY0hNNkx5/OXpZMkZzL1pXZHlh/V1F1YVc4dmQzQXQv/WTI5dWRHVnVkQzkx/Y0d4di9ZV1J6TDNC/dmMzUm5jbVZ6L2NX/d3RZbVZ1WTJodFlY/SnIvTFhObkxYWnpM/WEprY3kweC9MVEV3/TWpSNE5UTXlMbXB3/L1p3.jpeg);"> <div class="image-grid-item image svelte-55e7tq"><a class="zoom svelte-55e7tq" href="https://search.brave.com/images?q=show+me+how+to+access+a+postgres+server+from+a+nodejs+server&context=W3sic3JjIjoiaHR0cHM6Ly9pbWdzLnNlYXJjaC5icmF2ZS5jb20vZndST01oYk1aQWFzOExJZ2FPWEhkai01eDlNMFQtWVVqclBzMTJmc0RNdy9yczpmaXQ6NTAwOjA6MDowL2c6Y2UvYUhSMGNITTZMeTlwYldkei9Mbk5sWVhKamFDNWljbUYyL1pTNWpiMjB2WTJ0cVRXNVQvZUhCSFgwOWZRbkU1U21ZMC9VWFo1ZERoc1lqaHZSR3BML2RqQXpiRE5NVEZGUlpWRngvVlM5eWN6cG1hWFE2TlRZdy9Pak15TURveE9qQXZaenBqL1pTOWhTRkl3WTBoTk5reDUvT1hwWk1rWnpMMXBYWkhsaC9WMUYxWVZjNGRtUXpRWFF2L1dUSTVkV1JIVm5Wa1F6a3gvWTBkNGRpOVpWMUo2VEROQy9kbU16VW01amJWWjZMMk5YL2QzUlpiVloxV1RKb2RGbFkvU25JdlRGaE9ia3hZV25wTS9XRXByWTNrd2VDOU1WRVYzL1RXcFNORTVVVFhsTWJYQjMvTDFwMy5qcGVnIiwidGV4dCI6InBvc3RncmVzcWwgYmVuY2htYXJrIHNnIHZzIHJkcyIsInBhZ2VfdXJsIjoiaHR0cHM6Ly9zY2FsZWdyaWQuaW8vYmxvZy9ob3ctdG8tY29ubmVjdC1wb3N0Z3Jlc3FsLWRhdGFiYXNlLWluLW5vZGUtanMvIn1d&sig=4030cfa296a0841d91487df733a4904a8ad7b850094eb4ea439c9edd66580896&nonce=6d89709035b363b07cfe39ed96f75aa2&source=llmImg" data-sveltekit-reload=""><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/Zw.jpg" alt="postgresql benchmark sg vs rds" crossorigin="anonymous" loading="lazy" class="svelte-55e7tq"></a> </div> <div class="image-grid-cluster svelte-55e7tq clusterize transitioned"><div class="image-grid-item svelte-55e7tq image"><a class="fade-in svelte-55e7tq zoom" href="https://search.brave.com/images?q=show+me+how+to+access+a+postgres+server+from+a+nodejs+server&context=W3sic3JjIjoiaHR0cHM6Ly9pbWdzLnNlYXJjaC5icmF2ZS5jb20vbkVnU0Z1TzZlVzUxSUh0WDY0MXZBblo5c3MzY3A3NW1YZVZ6MmZTN0E3MC9yczpmaXQ6NTAwOjA6MDowL2c6Y2UvYUhSMGNITTZMeTlwYldkei9Mbk5sWVhKamFDNWljbUYyL1pTNWpiMjB2ZURSRE5VZGYvY0hadVdWQnRXamRUVkhKSS9ia2RvVkRsWE4ySktkbnBFL1Izb3pURmQzWDBndGJUY3kvVVM5eWN6cG1hWFE2TlRZdy9Pak15TURveE9qQXZaenBqL1pTOWhTRkl3WTBoTk5reDUvT1hwWk1rWnpMMXBYWkhsaC9WMUYxWVZjNGRtUXpRWFF2L1dUSTVkV1JIVm5Wa1F6a3gvWTBkNGRpOVpWMUo2VERKSy9iR016VVhSalJ6bDZMMlJIL1pIbGFXRTU0WWtNeGJtUlgvYkdZdll6Sk9hR0pIVm01ai9iV3hyVEZSRmR5OU5hbEkwL1RsUmpNa3h0Y0hkYWR3LmpwZWciLCJ0ZXh0IjoiYmVzdCBwb3N0Z3Jlc3FsIGd1aV9zY2FsZWdyaWQiLCJwYWdlX3VybCI6Imh0dHBzOi8vc2NhbGVncmlkLmlvL2Jsb2cvaG93LXRvLWNvbm5lY3QtcG9zdGdyZXNxbC1kYXRhYmFzZS1pbi1ub2RlLWpzLyJ9XQ%3D%3D&sig=6ebe4d8a2c83c3750638920787f2ba2da12bdec38d9b2a24c654665cb5627b21&nonce=fbe62da1fdab4b41c5d60c67ac7192a5&source=llmImg" data-sveltekit-reload=""><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/MjR4NTc2LmpwZw.jpg" alt="best postgresql gui_scalegrid" crossorigin="anonymous" loading="lazy" class="svelte-55e7tq"></a> </div> <div class="image-grid-item image svelte-55e7tq"><a href="https://search.brave.com/images?q=show+me+how+to+access+a+postgres+server+from+a+nodejs+server&context=W3sic3JjIjoiaHR0cHM6Ly9pbWdzLnNlYXJjaC5icmF2ZS5jb20vTno2M0cyb1lSdVh3ejNSbEpxQWFpaUN3Slpob0FhemNZQ24tT2xmdTZPVS9yczpmaXQ6NTAwOjA6MDowL2c6Y2UvYUhSMGNITTZMeTlwYldkei9Mbk5sWVhKamFDNWljbUYyL1pTNWpiMjB2VmpCNGJHUlkvY0dzeFYxaEtlbmc0Y0d0TS9hMmxWVWpKbGNXTkJNVmhXL1FUTnJWazlFY1RkbVREQmkvUVM5eWN6cG1hWFE2TlRZdy9Pak15TURveE9qQXZaenBqL1pTOWhTRkl3WTBoTk5reDUvT1hwWk1rWnpMMXBYWkhsaC9WMUYxWVZjNGRtUXpRWFF2L1dUSTVkV1JIVm5Wa1F6a3gvWTBkNGRpOVpWMUo2VERKSy9jMkl5WTNSYWJWWm9MMlJJL1ZubGFVekZ3WWxka1ptRkgvT1RNdlRGaFNka3hYVG5aaS9iVFZzV1ROUmRDOWpSemw2L1pFZGtlVnBZVG5oaVF6RnIvTDFsWVVtaFpiVVo2V2xNeC9jR0pwTVhVdllqSlNiRXhYL2NIcE1iWEIzV2xkai5qcGVnIiwidGV4dCI6ImJsb2cgZmVhdHVyZSBpbWcgaG93IHRvIGNvbm5lY3QgcG9zdGdyZXNxbCBkYXRhYmFzZSBpbiBub2RlIGpzIiwicGFnZV91cmwiOiJodHRwczovL3NjYWxlZ3JpZC5pby9ibG9nL2hvdy10by1jb25uZWN0LXBvc3RncmVzcWwtZGF0YWJhc2UtaW4tbm9kZS1qcy8ifV0%3D&sig=ad2661fc3dcaf4b308c1a66e996506ae2b4185e0a1b5b79f3707e23351789c49&nonce=d92e3f294ec006744235fbff10582f23&source=llmImg" data-sveltekit-reload="" class="svelte-55e7tq zoom"><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/b2RlLWpzLmpwZWc.jpg" alt="blog feature img how to connect postgresql database in node js" crossorigin="anonymous" loading="lazy" class="svelte-55e7tq"></a> </div><div class="image-grid-item image svelte-55e7tq"><a href="https://search.brave.com/images?q=show+me+how+to+access+a+postgres+server+from+a+nodejs+server&context=W3sic3JjIjoiaHR0cHM6Ly9pbWdzLnNlYXJjaC5icmF2ZS5jb20vQWtCbVY0ckx4ZjFENGZMMjRObXUyeGJtbzdqWkNZSHZtMUFzR1BEbzdmYy9yczpmaXQ6NTAwOjA6MDowL2c6Y2UvYUhSMGNITTZMeTlwYldkei9Mbk5sWVhKamFDNWljbUYyL1pTNWpiMjB2ZEZSdWQwd3cvYlVvd1dHUmhTSEJmUjFseS9PVXBYYTJoQlZVVTFPV3Q0L05rNVlOMGgxUkVoQ1pVaHQvUVM5eWN6cG1hWFE2TlRZdy9Pak15TURveE9qQXZaenBqL1pTOWhTRkl3WTBoTk5reDUvT1hwWk1rWnpMMXBYWkhsaC9WMUYxWVZjNGRtUXpRWFF2L1dUSTVkV1JIVm5Wa1F6a3gvWTBkNGRpOVpWMUo2VERJMS9kbHBIVlhSaGJrMTBMMDE2L1FYZGxSRWwzVFVNMWNXTkgvWXcuanBlZyIsInRleHQiOiJOb2RlLmpzIHdpdGggUG9zdGdyZVNRTCIsInBhZ2VfdXJsIjoiaHR0cHM6Ly9zY2FsZWdyaWQuaW8vYmxvZy9ob3ctdG8tY29ubmVjdC1wb3N0Z3Jlc3FsLWRhdGFiYXNlLWluLW5vZGUtanMvIn1d&sig=6de5c26dbba74447be88a80387b2e294b5dea32fd95b0dee606e58820b619d21&nonce=2edbd9d11c6962c238527702b8c41900&source=llmImg" data-sveltekit-reload="" class="svelte-55e7tq zoom"><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/MzAweDIwMC5qcGc.jpg" alt="Node.js with PostgreSQL" crossorigin="anonymous" loading="lazy" class="svelte-55e7tq"></a> </div><div class="image-grid-item image svelte-55e7tq"><a href="https://search.brave.com/images?q=show+me+how+to+access+a+postgres+server+from+a+nodejs+server&context=W3sic3JjIjoiaHR0cHM6Ly9pbWdzLnNlYXJjaC5icmF2ZS5jb20vdFVydV9qUi1mamdWbHl0T3dEX3M4OWJIV0l4YzlMSjIwX2pSLVN4d0NTYy9yczpmaXQ6NTAwOjA6MDowL2c6Y2UvYUhSMGNITTZMeTlwYldkei9Mbk5sWVhKamFDNWljbUYyL1pTNWpiMjB2TmxONVpuRk8vVm5WMU5GVlpSRGR0TTBWdC9TMUJET1VWTE1rMUJjVFpsL01tVlpjVmgwZEZCWmMwaEkvYXk5eWN6cG1hWFE2TlRZdy9Pak15TURveE9qQXZaenBqL1pTOWhTRkl3WTBoTk5reDUvT1hwWk1rWnpMMXBYWkhsaC9WMUYxWVZjNGRtUXpRWFF2L1dUSTVkV1JIVm5Wa1F6a3gvWTBkNGRpOVpWMUo2VEROTy9hbGxYZUd4YU0wcHdMMXBEL01XcGlNalY2WWpKNGJFeFkvUW5Zdll6TlNibU50Vm5wai9WM2QxWTBjMWJnLmpwZWciLCJ0ZXh0Ijoic2NhbGVncmlkIGNvbnNvbGUgcG9zdGdyZXNxbCIsInBhZ2VfdXJsIjoiaHR0cHM6Ly9zY2FsZWdyaWQuaW8vYmxvZy9ob3ctdG8tY29ubmVjdC1wb3N0Z3Jlc3FsLWRhdGFiYXNlLWluLW5vZGUtanMvIn1d&sig=2472c9f094a9660dd65beca429e6c3543ef022dfe9d8258cb0581f48b7d41c55&nonce=b9f8a503022998d332759bfd8f3c21aa&source=llmImg" data-sveltekit-reload="" class="svelte-55e7tq zoom"><img src="./show me how to access a postgres server from a nodejs server - Brave Search_files/c3RncmVzcWwucG5n.jpg" alt="scalegrid console postgresql" crossorigin="anonymous" loading="lazy" class="svelte-55e7tq"></a> <a class="image-grid-button svelte-1xtzjqw" href="https://search.brave.com/images?q=show+me+how+to+access+a+postgres+server+from+a+nodejs+server&context=W3sic3JjIjoiaHR0cHM6Ly9pbWdzLnNlYXJjaC5icmF2ZS5jb20vZndST01oYk1aQWFzOExJZ2FPWEhkai01eDlNMFQtWVVqclBzMTJmc0RNdy9yczpmaXQ6NTAwOjA6MDowL2c6Y2UvYUhSMGNITTZMeTlwYldkei9Mbk5sWVhKamFDNWljbUYyL1pTNWpiMjB2WTJ0cVRXNVQvZUhCSFgwOWZRbkU1U21ZMC9VWFo1ZERoc1lqaHZSR3BML2RqQXpiRE5NVEZGUlpWRngvVlM5eWN6cG1hWFE2TlRZdy9Pak15TURveE9qQXZaenBqL1pTOWhTRkl3WTBoTk5reDUvT1hwWk1rWnpMMXBYWkhsaC9WMUYxWVZjNGRtUXpRWFF2L1dUSTVkV1JIVm5Wa1F6a3gvWTBkNGRpOVpWMUo2VEROQy9kbU16VW01amJWWjZMMk5YL2QzUlpiVloxV1RKb2RGbFkvU25JdlRGaE9ia3hZV25wTS9XRXByWTNrd2VDOU1WRVYzL1RXcFNORTVVVFhsTWJYQjMvTDFwMy5qcGVnIiwidGV4dCI6InBvc3RncmVzcWwgYmVuY2htYXJrIHNnIHZzIHJkcyIsInBhZ2VfdXJsIjoiaHR0cHM6Ly9zY2FsZWdyaWQuaW8vYmxvZy9ob3ctdG8tY29ubmVjdC1wb3N0Z3Jlc3FsLWRhdGFiYXNlLWluLW5vZGUtanMvIn1d&sig=4030cfa296a0841d91487df733a4904a8ad7b850094eb4ea439c9edd66580896&nonce=6d89709035b363b07cfe39ed96f75aa2&source=llmImg" data-sveltekit-reload=""><div class="icon-wrapper svelte-1xtzjqw"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M1.45 6a2.3 2.3 0 0 1 2.3-2.3h16.5a2.3 2.3 0 0 1 2.3 2.3v12a2.3 2.3 0 0 1-2.3 2.3H3.75a2.3 2.3 0 0 1-2.3-2.3zm1.6 10.081V18a.7.7 0 0 0 .7.7h16.5a.7.7 0 0 0 .7-.7v-1.919l-2.675-2.674a1.45 1.45 0 0 0-2.05 0l-.844.843.935.934a.8.8 0 1 1-1.132 1.132l-5.159-5.16a1.45 1.45 0 0 0-2.05 0zm11.2-2.962-3.093-3.094a3.05 3.05 0 0 0-4.314 0L3.05 13.82V6a.7.7 0 0 1 .7-.7h16.5a.7.7 0 0 1 .7.7v7.819l-1.543-1.544a3.05 3.05 0 0 0-4.314 0zM13.075 8.25a1.175 1.175 0 1 1 2.35 0 1.175 1.175 0 0 1-2.35 0" clip-rule="evenodd"></path></svg></div></a> </div></div></div></div></div></div> </div><div id="infobox-snippet" class="snippet standalone svelte-n9nog2"><div id="codebox" class="infobox mb-2xl svelte-1qxudfv overflowing"><div id="codebox-header" class="svelte-1qxudfv"><div class="infobox-header-with-url"><a class="title heading-serpresult svelte-wl5p8i" href="https://stackoverflow.com/questions/9205496/how-to-make-connection-to-postgres-via-node-js" target="_self" rel="noopener"><span>How to make connection to Postgres via Node.js</span></a> <a href="https://stackoverflow.com/questions/9205496/how-to-make-connection-to-postgres-via-node-js" target="_self" rel="noopener" class="url svelte-wl5p8i"><img alt="🌐" class="favicon svelte-w8qrqh size-xs" src="./show me how to access a postgres server from a nodejs server - Brave Search_files/image.png" loading="lazy"> <cite class="snippet-url desktop-small-regular svelte-17izklh"> <span class="netloc svelte-17izklh">stackoverflow.com</span> <span class="url-path svelte-17izklh">› questions › 9205496 › how-to-make-connection-to-postgres-via-node-js</span> </cite></a></div></div> <div id="codebox-answer" class="desktop-default-regular t-secondary svelte-1qxudfv"><p>Here is an example I used to connect node.js to my Postgres database.</p>
<p>The interface in node.js that I used can be found here https://github.com/brianc/node-postgres</p>
<pre><code><div class="copy-displacement" style="float: right; height: 40px; position: relative; right: calc(-1 * var(--spacing-xl)); top: calc(-1 * var(--spacing-xl)); width: 40px;"></div><span class="token keyword">var</span> pg <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">'pg'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">var</span> conString <span class="token operator">=</span> <span class="token string">"postgres://YourUserName:YourPassword@localhost:5432/YourDatabase"</span><span class="token punctuation">;</span>
<span class="token keyword">var</span> client <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">pg<span class="token punctuation">.</span>Client</span><span class="token punctuation">(</span>conString<span class="token punctuation">)</span><span class="token punctuation">;</span>
client<span class="token punctuation">.</span><span class="token function">connect</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">//queries are queued and executed one after another once the connection becomes available</span>
<span class="token keyword">var</span> x <span class="token operator">=</span> <span class="token number">1000</span><span class="token punctuation">;</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span>x <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
client<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token string">"INSERT INTO junk(name, a_number) values('Ted',12)"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
client<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token string">"INSERT INTO junk(name, a_number) values($1, $2)"</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token string">'John'</span><span class="token punctuation">,</span> x<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
x <span class="token operator">=</span> x <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">var</span> query <span class="token operator">=</span> client<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token string">"SELECT * FROM junk"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">//fired after last row is emitted</span>
query<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'row'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">row</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>row<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
query<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'end'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
client<span class="token punctuation">.</span><span class="token function">end</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">//queries can be executed either via text/parameter values passed as individual arguments</span>
<span class="token comment">//or by passing an options object containing text, (optional) parameter values, and (optional) query name</span>
client<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
<span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'insert beatle'</span><span class="token punctuation">,</span>
<span class="token literal-property property">text</span><span class="token operator">:</span> <span class="token string">"INSERT INTO beatles(name, height, birthday) values($1, $2, $3)"</span><span class="token punctuation">,</span>
<span class="token literal-property property">values</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">'George'</span><span class="token punctuation">,</span> <span class="token number">70</span><span class="token punctuation">,</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token number">1946</span><span class="token punctuation">,</span> <span class="token number">02</span><span class="token punctuation">,</span> <span class="token number">14</span><span class="token punctuation">)</span><span class="token punctuation">]</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">//subsequent queries with the same name will be executed without re-parsing the query plan by postgres</span>
client<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
<span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'insert beatle'</span><span class="token punctuation">,</span>
<span class="token literal-property property">values</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">'Paul'</span><span class="token punctuation">,</span> <span class="token number">63</span><span class="token punctuation">,</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token number">1945</span><span class="token punctuation">,</span> <span class="token number">04</span><span class="token punctuation">,</span> <span class="token number">03</span><span class="token punctuation">)</span><span class="token punctuation">]</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">var</span> query <span class="token operator">=</span> client<span class="token punctuation">.</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token string">"SELECT * FROM beatles WHERE name = $1"</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token string">'john'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">//can stream row results back 1 at a time</span>
query<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'row'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">row</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>row<span class="token punctuation">)</span><span class="token punctuation">;</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"Beatle name: %s"</span><span class="token punctuation">,</span> row<span class="token punctuation">.</span>name<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//Beatle name: John</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"Beatle birth year: %d"</span><span class="token punctuation">,</span> row<span class="token punctuation">.</span>birthday<span class="token punctuation">.</span><span class="token function">getYear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//dates are returned as javascript dates</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"Beatle height: %d' %d\""</span><span class="token punctuation">,</span> Math<span class="token punctuation">.</span><span class="token function">floor</span><span class="token punctuation">(</span>row<span class="token punctuation">.</span>height <span class="token operator">/</span> <span class="token number">12</span><span class="token punctuation">)</span><span class="token punctuation">,</span> row<span class="token punctuation">.</span>height <span class="token operator">%</span> <span class="token number">12</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//integers are returned as javascript ints</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">//fired after last row is emitted</span>
query<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'end'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
client<span class="token punctuation">.</span><span class="token function">end</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<div class="copy-container svelte-15fs32e"> <button class="btn btn--tiny btn--icon btn--plain-faint"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" class="icon" viewBox="0 0 20 20"><path fill="currentColor" fill-rule="evenodd" d="M6.529 8.07c0-.851.69-1.542 1.541-1.542h8.334c.851 0 1.541.69 1.541 1.542v8.334c0 .85-.69 1.541-1.541 1.541H8.07c-.851 0-1.541-.69-1.541-1.541zm1.541-.125a.125.125 0 0 0-.125.125v8.334c0 .069.056.125.125.125h8.334a.125.125 0 0 0 .125-.125V8.07a.125.125 0 0 0-.125-.125zM1.792 3.333c0-.851.69-1.541 1.541-1.541h8.334c.851 0 1.541.69 1.541 1.541v1.09a.708.708 0 0 1-1.416 0v-1.09a.125.125 0 0 0-.125-.125H3.333a.125.125 0 0 0-.125.125v8.334c0 .069.056.125.125.125h1.09a.708.708 0 1 1 0 1.416h-1.09c-.851 0-1.541-.69-1.541-1.541z" clip-rule="evenodd"></path></svg></button></div></code></pre>
<p>UPDATE:- THE <code>query<span class="token punctuation">.</span>on</code> function is now deprecated and hence the above code will not work as intended. As a solution for this look at:- query.on is not a function</p> <cite class="svelte-1qxudfv">Answer from Kuberchaun on Stack Overflow</cite></div> <div class="bottom-fade svelte-h9rkzz"></div></div> <div style="display: contents; --action-width: 33%;"><footer class="desktop-xsmall-regular t-tertiary svelte-1b67e0s has-action"><div class="action-wrapper svelte-1b67e0s"><div class="action-container svelte-1b67e0s"><button class="button svelte-6ewvxe type size--default size--tiny type--outlined-subtle type--footer-subtle theme--default full-width icon-end tooltip--bottom" role="button" rel="noopener" data-sveltekit-reload=""> <span class="svelte-6ewvxe">Show more</span> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="icon" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12.566 15.316a.8.8 0 0 1-1.132 0l-5.5-5.5a.8.8 0 1 1 1.132-1.132L12 13.62l4.934-4.935a.8.8 0 1 1 1.132 1.132z" clip-rule="evenodd"></path></svg></button></div></div> <div class="row svelte-1b67e0s"> <div class="row-divider svelte-1b67e0s"></div> <div class="primary svelte-1b67e0s"><div class="ai-digest svelte-1b67e0s"></div> <div class="primary-right svelte-1b67e0s"> <button class="t-tertiary svelte-io2suq" aria-label="Feedback"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M12 3.95c-4.723 0-8.433 3.495-8.433 7.666 0 1.965.814 3.766 2.17 5.133.493.496.98 1.305.762 2.239q-.13.552-.365 1.054a5.33 5.33 0 0 0 2.8-.964.78.78 0 0 1 .655-.115 9.2 9.2 0 0 0 2.411.318c4.723 0 8.433-3.494 8.433-7.665S16.723 3.951 12 3.951M5.175 21.584a7 7 0 0 1-.547-.076.783.783 0 0 1-.46-1.277c.385-.455.665-1 .805-1.597.042-.181-.033-.464-.347-.78C3.003 16.217 2 14.029 2 11.615c0-5.161 4.543-9.232 10-9.232s10 4.07 10 9.232-4.543 9.232-10 9.232c-.852 0-1.68-.099-2.472-.284a6.9 6.9 0 0 1-4.353 1.019m10.067-10.25a1.08 1.08 0 1 1 2.162 0 1.08 1.08 0 0 1-2.162 0m-4.322 0a1.08 1.08 0 1 1 2.161 0 1.08 1.08 0 0 1-2.161 0m-4.323 0a1.08 1.08 0 1 1 2.161 0 1.08 1.08 0 0 1-2.161 0" clip-rule="evenodd"></path></svg></button> </div></div></div></footer></div> </div> </aside></div></div></main> <div id="js-gmix" data="{}"></div> <footer class="svelte-elswzx"><div class="column-layout noscrollbar svelte-bd1r44"> <div class="cols svelte-bd1r44"><main class="main-column svelte-bd1r44"><div class="content svelte-elswzx"><div class="block desktop-small-regular svelte-elswzx"><h6 class="header desktop-default-semibold svelte-elswzx">Resources</h6> <div class="flex-col svelte-elswzx"><a href="https://account.brave.com/?intent=checkout&product=search" rel="noopener noreferrer" target="_self" class="svelte-elswzx">Brave Search Premium</a> <a href="https://search.brave.com/help" data-sveltekit-reload="" class="svelte-elswzx">Brave Search Help</a> <a href="https://brave.com/transparency/" class="svelte-elswzx">Transparency Report</a> <a target="_self" rel="noopener noreferrer" href="https://hackerone.com/brave" class="svelte-elswzx">Report a security issue</a> <a href="https://status.brave.com/" class="svelte-elswzx">Status</a></div></div> <div class="block desktop-small-regular svelte-elswzx"><h6 class="header desktop-default-semibold svelte-elswzx">Products</h6> <div class="grid-2-col svelte-elswzx"><a href="https://brave.com/download/?mtm_source=brave-search&mtm_medium=searchfooter&mtm_campaign=brave-search&mtm_content=evergreen" class="svelte-elswzx">Brave Browser</a> <a href="https://search.brave.com/" class="svelte-elswzx">Brave Search</a> <a href="https://brave.com/wallet/?mtm_source=brave-search&mtm_medium=searchfooter&mtm_campaign=brave-search&mtm_content=evergreen" class="svelte-elswzx">Brave Wallet</a> <a href="https://talk.brave.com/?mtm_source=brave-search&mtm_medium=searchfooter&mtm_campaign=brave-search&mtm_content=evergreen" class="svelte-elswzx">Brave Talk</a> <a href="https://brave.com/firewall-vpn/?mtm_source=brave-search&mtm_medium=searchfooter&mtm_campaign=brave-search&mtm_content=evergreen" class="svelte-elswzx">Brave Firewall + VPN</a> <a href="https://brave.com/playlist/?mtm_source=brave-search&mtm_medium=searchfooter&mtm_campaign=brave-search&mtm_content=evergreen" class="svelte-elswzx">Brave Playlist</a> <a href="https://brave.com/brave-news/?mtm_source=brave-search&mtm_medium=searchfooter&mtm_campaign=brave-search&mtm_content=evergreen" class="svelte-elswzx">Brave News</a> <a href="https://brave.com/brave-rewards/?mtm_source=brave-search&mtm_medium=searchfooter&mtm_campaign=brave-search&mtm_content=evergreen" class="svelte-elswzx">Brave Rewards</a> <a href="https://brave.com/search/api/?mtm_source=brave-search&mtm_medium=searchfooter&mtm_campaign=brave-search&mtm_content=evergreen" class="svelte-elswzx">Brave Search API</a> <a href="https://brave.com/brave-ads/?mtm_source=brave-search&mtm_medium=searchfooter&mtm_campaign=brave-search&mtm_content=evergreen" class="svelte-elswzx">Brave Ads</a></div></div> <div class="block desktop-small-regular svelte-elswzx"><h6 class="header desktop-default-semibold svelte-elswzx">Policies</h6> <div class="flex-col svelte-elswzx"><a href="https://search.brave.com/help/privacy-policy" data-sveltekit-reload="" class="svelte-elswzx">Privacy Policy</a> <a href="https://brave.com/terms-of-use/" class="svelte-elswzx">Terms of Use</a></div></div></div> </main> </div></div></footer> </div> <div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0px; top: 0px; clip: rect(0px, 0px, 0px, 0px); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px;"></div></div>
</body></html>