programing

nodejs를 사용하여 기본 브라우저를 열고 특정 URL로 이동하는 방법

topblog 2023. 9. 10. 11:51
반응형

nodejs를 사용하여 기본 브라우저를 열고 특정 URL로 이동하는 방법

Node.js를 이용하여 어플리케이션을 작성하고 있습니다.

제가 만들고 싶은 기능 중 하나는 기본 웹 브라우저를 열고 특정 URL로 이동하는 것입니다.

윈도우/맥/리눅스에서 실행할 수 있도록 휴대용으로 했으면 합니다.

open 사용(이전 이름:opn교차 플랫폼 문제를 처리할 것이기 때문입니다.설치 방법:

$ npm install open

사용 방법:

const open = require('open');

// opens the url in the default browser 
open('http://sindresorhus.com');
 
// specify the app to open in 
open('http://sindresorhus.com', {app: 'firefox'});
var url = 'http://localhost';
var start = (process.platform == 'darwin'? 'open': process.platform == 'win32'? 'start': 'xdg-open');
require('child_process').exec(start + ' ' + url);

node-open은 더 이상 사용되지 않습니다.이제 열기로 사용:

const open = require('open')

await open('http://sindresorhus.com') // Opens the url in the default browser

await open('http://sindresorhus.com', {app: 'firefox'}) // Specify the app to open in

설치:

$ npm install open

용도:

const open = require('open');
 
(async () => {
    // Opens the image in the default image viewer and waits for the opened app to quit.
    await open('unicorn.png', {wait: true});
    console.log('The image viewer app quit');
 
    // Opens the URL in the default browser.
    await open('https://sindresorhus.com');
 
    // Opens the URL in a specified browser.
    await open('https://sindresorhus.com', {app: 'firefox'});
 
    // Specify app arguments.
    await open('https://sindresorhus.com', {app: ['google chrome', '--incognito']});
})();

... 값을 사용하여 스위치를 구현해야 할 수도 있습니다.

require('os').type()

그다음에 사용.spawn("open")아니면spawn("xdg-open")플랫폼에 따라?

윈도우 + 익스프레스

app.listen(3000, ()=>{
    require('child_process').exec('start http://localhost:3000/');
});

가장 쉽고 깔끔한 방법은 openurl이라는 npm 패키지를 사용하는 IMHO입니다.하라.npm install openurl. Nodejs REPL에서 이것을 정말 빠르게 시도할 수 있습니다.

require("openurl").open("http://stackoverflow.com/questions/8500326/how-to-use-nodejs-to-open-default-browser-and-navigate-to-a-specific-url")

필요한 경우 이메일을 함께 보낼 수도 있습니다.require("openurl").open("mailto:janedoe@example.com")

#!/usr/bin/env node

const url = 'http://localhost'
require('child_process')
  .exec((process.platform
         .replace('darwin','')
         .replace(/win32|linux/,'xdg-') + 'open ' + url));

간단히 사용

require('child_process').exec('start https://www.google.co.in/');

나한테 효과가 있어요.

var url = '\\index.html';
var start = (process.platform == 'darwin'? 'open': process.platform == 'win32'? 'start': 'xdg-open');
require('child_process').exec(start + ' ' + __dirname + url);

렉사-B의 답변이 가장 잘 맞았지만 "Windows에서 인덱스를 찾을 수 없습니다.html" 오류가 발생했습니다.제가 작성하고 있던 npm 패키지 내의 로컬 웹 페이지를 열기 위해 lexa-b code child_process exec 명령을 사용하고 있었습니다.npx 명령으로 패키지 bin.js에서 html 파일을 실행 / 열 때 npm 패키지에서 html 파일을 열어야 했습니다.

필요한 것은 파일 경로에 __dirname을 추가하여 child_process를 호출하는 파일에 대한 상대 디렉토리 경로가 정확한지 확인하는 것이었습니다.npx 임시 파일 위치에서 멀리 떨어진 홈 폴더에서 child_process가 실행되고 있습니다.__syname은 해당 문제를 해결하고 둘을 연결하여 누락된 파일 오류를 해결합니다.

언급URL : https://stackoverflow.com/questions/8500326/how-to-use-nodejs-to-open-default-browser-and-navigate-to-a-specific-url

반응형